Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Zeroql en 20 Noviembre 2006, 16:57 pm



Título: Porbelmas con Ado
Publicado por: Zeroql en 20 Noviembre 2006, 16:57 pm
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
Código:
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


Título: Re: Porbelmas con Ado
Publicado por: PepiX en 20 Noviembre 2006, 17:57 pm
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


Título: Re: Porbelmas con Ado
Publicado por: CeLaYa en 20 Noviembre 2006, 19:07 pm
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...


Título: Re: Porbelmas con Ado
Publicado por: Martin-Ph03n1X en 20 Noviembre 2006, 19:12 pm
.................................................
poca programacion.... necesito saber =P


Título: Re: Porbelmas con Ado
Publicado por: Zeroql en 20 Noviembre 2006, 21:49 pm
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


Título: Re: Porbelmas con Ado
Publicado por: CeLaYa en 20 Noviembre 2006, 22:15 pm
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


Título: Re: Porbelmas con Ado
Publicado por: Zeroql en 21 Noviembre 2006, 19:20 pm
celaya lo voy a probar a ver que tal...


Título: Re: Porbelmas con Ado
Publicado por: rixi15 en 21 Noviembre 2006, 19:26 pm
puedes pasarme tu proyecto?