Hola que tal.
bien mi problema es el siguiente, tengo una base de datos el formato access 97, uso los comandos de ado para su uso pero el miserable no me guarda los datos nuevos aqui les dejo el code para que me diga nek esta mal
Public BD As New ADODB.Connection
Public Rs As New ADODB.Recordset
strconect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path + "\dataF.mdb;Persist Security Info=False;JET OLEDB:DATABASE PASSWORD="
BD.Open strconect
Rs.Open "select * from Contact", BD, adOpenKeyset, adLockBatchOptimistic
If Not Rs.EOF Then
Rs.MoveLast
cuantos = Rs.RecordCount
Rs.MoveFirst
For i = 1 To cuantos
Rs.AddNew
Rs!Nom = .txtNom.Text & " " & .txtApl.Text
Rs!Tel = .txtNum.Text
Rs!movil = .txtMov.Text
Rs!DirPic = .txtImg.Text
Rs.Update
Rs.MoveNext
valNew = False
Next i
End If
normalmente esto esta bien, aunke yo usaba otros tipos de comandos mas complicados y mas largos para guardar datos. soy algo novato con esto del Ado. hey gracias por la colaboracion
lo recomendable seria que hagas un step by step..
añade un registro por vez y no dentro de un bucle
PD: si necesitas el bucle la linea 'Rs.MoveNext' esta demás
y deberias cambiar el valor del campo clave para no crear indices duplicados cada vez que haces un addnew
no entiendo muy bien que quieres hacer con el FOR, porque eso te crea un monton de registros duplicados, y coincido con PepiX, te sobra el "rs.MoveNext", deberias checar que es lo que quieres guardar realmente...
.................................................
poca programacion.... necesito saber =P
aun asi no funciona. el for es para contar los registros que hay y que me lleva el final, el rs.movenext es para que se mueva de casilla si esta en el final para que cree un nuevo registro, pero no funciona!!!
si laguien sabe diagenme, o coloke un code de como es que guarda el ado y como se edita
haaa!!!! ahora ya entendi, mira creo que andas un poco perdido.
mira no necesitas irte hasta el final de la tabla, cuando pones el metodo AddNew automaticamente lo agrega al final. El error que tienes es que cuentas los registros que tienes (n) y luego con el FOR agregas n registros repetidos, mira para que te des una idea de como agregar tu registro deberías poner algo más o menos así:
Public BD As New ADODB.Connection
Public Rs As New ADODB.Recordset
on local error resume next
strconect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path + "\dataF.mdb;Persist Security Info=False;JET OLEDB:DATABASE PASSWORD="
BD.Open strconect
BD.Execute "INSER INTO Contact " & _
"(Nom, Tel, Movil, DirPic) VALUES " & _
"'" & txtNom.Text & " " & txtApl.Text & "', '" & txtNum.Text & "', '" & txtMov.Text & "', '" & txtImg.Text & "'", , adExecuteNoRecords
if err then
'Error al agregar el registro
MsgBox BD.Errors(0).Number & vbCrLf & BD.Errors(0).Description, vbCritical + vbOKOnly, App.EXEName
end if
BD.close
set BD = nothing
on local error goto 0
celaya lo voy a probar a ver que tal...
puedes pasarme tu proyecto?