Access y VB 6.0

Valedor
Disculpa que te moleste otra vez! Ya que leí una data de excel y los salve en un arreglo dicha data va ir en una tabla nueva en access 2000 que ya se como crearla pero aunque no lo creas me falta como agregar la data a la tabla que acabo de crear utilizando adox
Si alguien tiene algún ejemplo de ingresar data a access utilizando ADOX se los agradecería
Gracias de antemano
Saludos
Ricardo

1 Respuesta

Respuesta
1
No es molestia, supongo que con "una data" te refieres a datos que están en celdas de Excel los quieres pasar a una tabla de Access, realmente ya hiciste lo más complicado que es crear la tabla, para agregar datos es muy simple, estoy suponiendo lo siguiente:
Una base de datos llamada Directorio.mdb en el mismo directorio que el archivo de Excel desde donde ejecutaras esta macro
Esta base de datos tiene una tabla que se llama tblAmigos
Esta tabla consta de tres campos Clave, Nombre y Teléfono, el primero es Autonumérico y es nuestra clave principal, los otros dos son de texto
Los datos en la hoja de Excel, esta en la hoja ACTIVA a partir de la celda A1 y tiene encabezados, los mismos nombres que los de nuestros campos en nuestra tabla
Hacen falta algunas validaciones pero esas ya son tu tarea, como: verificar que exista la base de datos, verificar que existan datos a exportar, tal vez validar los tipos de datos, etc...
Option Explicit
Public Sub ExportarDatos()
Dim adoCon As ADODB.Connection
Dim adoRst As ADODB.Recordset
Dim strRuta As String
Dim co1 As Integer
Set adoCon = New ADODB.Connection
Set adoRst = New ADODB.Recordset
strRuta = ThisWorkbook.Path & "\Directorio.mdb"
adoCon.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & strRuta
adoRst.Open "SELECT * FROM tblAmigos", adoCon, adOpenDynamic, adLockOptimistic
For co1 = 2 To Range("A1").CurrentRegion.Rows.Count
adoRst.AddNew
adoRst!Nombre = Cells(co1, 2).Value
adoRst!Telefono = Cells(co1, 3).Value
adoRst.Update
Next co1
adoRst.Close
adoCon.Close
Set adoCon = Nothing
Set adoRst = Nothing
End Sub
La respuesta ha sido excelente.
En la hoja que yo tengo necesito saber el numero de lineas que tiene la hoja pero la hoja tiene en una fila al final con unos totales que no deseo incluir..
Por ejemplo
En una hoja las primeras 15 filas tienen datos y en la fila 50 los totales pero en otra hoja puede haber 22 lineas con datos y los totales en la fila 32..
Como haría en ese caso solo para contar las lineas de datos y no tome en cuenta las lineas en blanco y tampoco la linea de totales
En la siguiente linea
For co1 = 2 To Range("A1").CurrentRegion.Rows.Count
El ciclo lo hará hasta donde encuentre datos, si la ultima fila es de totales solo réstale uno
For co1 = 2 To Range("A1").CurrentRegion.Rows.Count -1
Si tienes por ejemplo datos desde la fila 2 y hasta la 20, después filas vacías y tus totales en
La fila 30, la primer linea funcionara bien
For co1 = 2 To Range("A1").CurrentRegion.Rows.Count
Pero si (siguiendo el ejemplo) en las celdas 21 a 29 tienes fórmulas, pero estas NO devuelven
Datos y "aparentemente" están vacías, la selección la hará hasta la fila 30 y te podría llenar
Con datos vacíos, en este caso te sugiero cambiar la estructura de tus datos y no el código, por que si bien podríamos reemplazar el For... Next por un Do... While... Loop, este ultimo es más lento y un poquito más engorroso...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas