[SOLUCIONADO]busco tuto:vincular excel

Iniciado por CrÄsH, 8 Mayo 2009, 15:37 PM

0 Miembros y 2 Visitantes están viendo este tema.

CrÄsH

Buenas, en un formulario de acces me gustaria poder ver los datos de una hoja de excel.

Me podeis decir algun tuto.


Gracias
~~~~~~~~~~~~~~~~

byway

xlsx es la extensión del excel pero del office 2007 .. pues no es reconocido por visual basic 6.0 usa un excel anterior con extensión xls como el excel 200, el xp...

y si necsitas ejemplos buscalos en PSC (planet source code) alli hay muchos ejemplos casi ..casi de todo.

saludos.

CrÄsH

Para poder mostrar los datos del excel en un listbox en un formulari, tengo k pasar los datos del excel en una tabla o puedo leer directamente?

graciasss
~~~~~~~~~~~~~~~~

CrÄsH

Al final me conecto asi:

Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
With cn
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .ConnectionString = "Data Source=C:\eq.xls;" & _
"Extended Properties=Excel 8.0;"
    .Open
End With

Lo que me falta es saber como puedo leer los datos del excel, es crear un recordset para leer los datos del excel.

Algun ayudita??

graciasss
~~~~~~~~~~~~~~~~

BlackZeroX

#4
Cómo usar ADO con datos de Excel desde Visual Basic o desde VBA

mmm en todo caso te dire como

sabemos que en SQL usamos

Código (sql) [Seleccionar]
Select campos From Tabla
es decir que digamos en Acces, MySql SQL y otros seria asi

Código (sql) [Seleccionar]

Select * From datos


bueno en Excel seria asi

Código (sql) [Seleccionar]

Select campos From [Tabla$]


es decir:

Código (sql) [Seleccionar]

Select * From [datos$] ' Con Corchetes


Solo en la consulta se añaden los corchetes y el signo de pesos, para rangos y demas es me parece igual pero mejor leete el link que te puse esta mas detallado

Código (vb) [Seleccionar]

Public CN As New ADODB.Connection
Public rs As New ADODB.Recordset

Public Sub ConectarBDD(Consulta As String, ConnectionStr as string, Optional Con As Boolean = False)
    On Error GoTo Errores:
        If Con = True Then
            CN.Provider = "Microsoft.Jet.OLEDB.4.0"
            CN.ConnectionString = ConnectionStr
            CN.Open
        End If
        rs.Open Consulta, CN, adOpenKeyset, adLockOptimistic
        rs.MoveFirst' se mueve al primer Registro
Exit Sub
Errores:
        'Sentencias deErrores
        err.clear
End Sub


El problema es devolver los datos segun veo... pero si s epuede estoy seguro de ello.

Saludos Dulces Lunas
The Dark Shadow is my passion.

BlackZeroX

#5
mmm ya esta mira

ejemplo Source Ado en Excel/Access: Descargar

con el libro de Excel abre un proyecto nuevo: y en un modulo agrega este codigo (proceso inicial Sub Main quita el Formulario)

Código (vb) [Seleccionar]

Public Const SQL_Config = "select * from [configuracion$] " ' Para Access Quita Corchetes y el Signo de Pesos
Public Const SQL_Datos = "select * from [datos$] " ' Para Access Quita Corchetes y el Signo de Pesos
Public Cant_ACC As Integer
Public CN As New ADODB.Connection
Public rs As New ADODB.Recordset
Private DirectorioBDD As String

Enum BDD
    Excel = 0
    Access = 1
End Enum

Sub Main()
    DirectorioBDD = App.Path & "\data.xls" ' Cambiar el nombre _
                                            y tipo de archivo _
                                            es decir su extención _
                                            por la de Access si se _
                                            requiere su lectura
    Call AdoExcelAccess(Excel)
End Sub

Public Sub AdoExcelAccess(BDD As BDD)
    CN.Provider = "Microsoft.Jet.OLEDB.4.0"
    If BDD = Access Then
        CN.ConnectionString = DirectorioBDD
    ElseIf BDD = Excel Then
        CN.ConnectionString = "Data Source=" & DirectorioBDD & ";Extended Properties=Excel 8.0;"
    Else
        Exit Sub
    End If
    CN.Open
    rs.Open SQL_Config, CN, adOpenKeyset, adLockOptimistic
    rs.MoveFirst
    Cant_ACC = Val(rs!cant_list)
    MsgBox Cant_ACC
    rs.Close
    rs.Open SQL_Datos, CN, adOpenKeyset, adLockOptimistic
    rs.MoveFirst
    For i = 1 To Cant_ACC - 1
        datos = CStr(rs!id) & vbNewLine & _
        CStr(rs!vj) & vbNewLine & _
        CStr(rs!genero) & vbNewLine & _
        CStr(rs!plataforma) & vbNewLine & _
        CStr(rs!existencias) & vbNewLine & _
        CStr(rs!precio)
        rs.MoveNext
        MsgBox datos
    Next i
End Sub


Como ves te puse uno de Excel y uno de Access
En este Ejemplo use Ado como si nada no importando si es Access o Excel de igual forma es para SQLServer y MySQL


P.D.: Encontre la Forma por accidente cuando esta jugando con el Codigo y jugando con los campos de Access tanto como de Excel...¡! je je je...¡!

Saludos Dulces Lunas
The Dark Shadow is my passion.

CrÄsH

#6
La pagina de microsoft ya la tenia, con ella en teoria conegui hacer la conexio pero no sabia como recojer datos del excel.

Los dos primeros comentarios k me dices:

" Para Access Quita Corchetes y el Signo de Pesos"

Seguro k es asi?

Si lo uso en access dnd pone [configuracion$] y  [datos$], si la hoja del excel se llama hoja1, tendria k poner [Hoja1$], en los dos casos, no?

graciass
~~~~~~~~~~~~~~~~

BlackZeroX

Cita de: ░▒▓BlackZeroҖ▓▒░ en 10 Mayo 2009, 10:33 AM
mmm ya esta mira

ejemplo Source Ado en Excel/Access: Descargar
...
...
...
Saludos Dulces Lunas


Baja El Source funciona a la perfección
The Dark Shadow is my passion.

CrÄsH

#8
Cita de: ░▒▓BlackZeroҖ▓▒░ en 10 Mayo 2009, 11:14 AM
Cita de: ░▒▓BlackZeroҖ▓▒░ en 10 Mayo 2009, 10:33 AM
mmm ya esta mira

ejemplo Source Ado en Excel/Access: Descargar
...
...
...
Saludos Dulces Lunas



Baja El Source funciona a la perfección

No hay  nada de codigo aki, y los archivos .vbp y .bas no me los relaciona con ningun programa.


Graciass
~~~~~~~~~~~~~~~~

BlackZeroX

Cita de: CrÄsH en 10 Mayo 2009, 11:20 AM
Cita de: ░▒▓BlackZeroҖ▓▒░ en 10 Mayo 2009, 11:14 AM
Cita de: ░▒▓BlackZeroҖ▓▒░ en 10 Mayo 2009, 10:33 AM
mmm ya esta mira

ejemplo Source Ado en Excel/Access: Descargar
...
...
...
Saludos Dulces Lunas



Baja El Source funciona a la perfección

No hay  nada de codigo aki, y los archivos .vbp y .bas no me los relaciona con ningun programa.

El Source que te acabo de dar es Explicito para VB6, con unos cambios funcionaria bien en el VBA
The Dark Shadow is my passion.