Insertar registros en base access

Respuesta de
a
Usuario
Hola Kieleze: Necesito saber como sería el código para agregar registros en una base access. Lo que hago es leer un archivo .txt y debo actualizar una base. ¿Me podrías ayudar a resolverlo?
Tengo esto:
Private Sub Form_Load()
Dim Datos As String
Dim Registro As String
Dim NumeroLote As String
Dim Cliente As String
Dim Respuesta as String

Open "d:\Temp\Recibido\Archivo.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, Datos
Registro = Datos
NumeroLote = Mid(Registro, 1, 5)
Cliente = Mid(Registro, 6, 6)
Respuesta = Mid(Registro, 8, 2)

......acá me faltaría el código

Loop
Close #1
End Sub

En Access 2000 es donde tengo la tabla que tiene 4 columnas: id(autonumérico), Lote (numérico), Clte (numérico) y Resp (alfanumérico).
Desde luego, gracias por lo que me puedas aportar.
Saludos
Usuario
Ezequiel: lo hice funcionar. El único cambio fue en dim cnn as adodc.connection, puse adoDB.connection y el resto anduvo ok
Muchas gracias!
(Ahora cierro la pregunta y califico)
Un saludo desde Buenos Aires, Argentina
Experto
Hola necesito saber si haces la conexión a la base de datos por medio de un control (data o adodc)
O si lo haces por código

Dim rstGuardar As Recordset
' este seria el recordset
'bd es una variable global que esta conectada a la base de datos Set bd = OpenDatabase(BDpath) 'bdpath es la direccion a la base de datos

Set rstGuardar = bd.OpenRecordset("select * from TABLA; ", dbOpenDynaset)

ESTO DE ARRIBA SE HARIA UNA SOLA


Esto de abajo sería lo que se repite cada vez que tomas desde el archivo de texto un nuevo registro

With rstGuardar
.AddNew
.Fields("lote") = numeroLote
.Fields("Clte") = cliente
.fields("Resp") = respuesta
.Update
End With


Con esto estaría bien...

Si necesitas alguna explicación más no dudes en volver a preguntar...

Si necesitas ayuda para conectar a la base decime como quieres hacerlo. Con que control

Un saludo de ezequiel
Desde rosario argentina

Por favor no olvides puntuar la respuesta
Usuario
Hola Ezequiel: No hice la conexión todavía, así que puedo optar por la que vos me recomiendes (data, ado o código). Gracias
Carlos
Usuario
Ezequiel: estuve probando y anda a las 999 maravillas. El único problema es que no me permite abrir una base access 2000. Lo hice con la misma base convertida a versión anterior. Como debería hacerlo para 2000.
Gracias
Experto
Hola para hacerlo directamente con el data...

A mi tampoco me funciona con access 2000... pero tengo compañeros a los que les funciona sin problemas...

Podrías fijarte en referencias a ver cuales tienes y si tienes alguna version mayor de DAO que la que tienes seleccionada probar con esa..


Sino acá te paso para hacerlo con ADO
Deberías declarar al principio

Para luego usar un adodc. Recordset

Y luego lo usas igual solo le cambias el nombre al recordset



dim cnn as adodc.connection
dim rs as adodc.recordset

Set cnn = New ADODB.Connection
Set rs = New ADODB.Recordset
'
With cnn
.CursorLocation = adUseClient
.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source= " & bdPath & ";"
.Open
End With
with rs
.CursorLocation = adUseClient
.Open "SELECT * FROM tabla", cnn, adOpenDynamic, adLockOptimistic
end with


y luego with rs
. Addnew
.fields("lakalka")

Etc lo único que debes cambiar es rstguardar por rs

Espero que funcione

Revisa referencias a ver si tienes alguna biblioteca de DAO más nueva que contenga compatibilidad con access 2000

Si no te deja usar el adodc ve a componentes y agrega

Microsoft ado data control

Espero que ahora funcione

Cualquier problema no dudes en preguntar de nuevo

Por favor, no olvides finalizar la respuesta

Un saludo de ezequiel
Desde rosario argentina