Porbelmas con Ado

Iniciado por Zeroql, 20 Noviembre 2006, 16:57 PM

0 Miembros y 1 Visitante están viendo este tema.

Zeroql

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
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#


PepiX

#1
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
--- los locos abren los caminos que más tarde recorrerán los sabios ---

CeLaYa

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...
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

Martin-Ph03n1X

.................................................
poca programacion.... necesito saber =P
  No eres tu trabajo, no eres cuanto tienes en el banco, no eres el auto que conduces, ni el contenido en tu billetera, no eres tus malditos cakis, eres el bailarin cantante del mundo...!!!"

Zeroql

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
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#


CeLaYa

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
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

Zeroql

celaya lo voy a probar a ver que tal...
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#


rixi15

puedes pasarme tu proyecto?