URGENTE! Necesito saber como programas los botones guardar, modificar, eliminar, por sql en un objeto ADO, de un formulario o por toolbar, todo por código.
Enviando las sentencias sql para cada operación que requieras por ejemplo en el botón de guardar envías un "insert into tabla values (x, x, x)" en modificar un "update tabla set campo=x where id=y", para eliminar "delete from tabla where id=xx". Utilizando el ado programándolo lo principal son los objetos connection y recordset, a través de un objeto connection puedes ejecutar sentencias sql y si quieres puedes guardarlo en un recordset. Para hacer uso de ellos debes incluir en tu proyecto la referencia al ado. después haces dim conexion as new adodb.connection dim resultado as new adodb.recordset conexion.open cadena_conexion 'la cadena de conexion depende de la base de datos que estes usando, en ella puedes incluir el nombre de usuario y contraseña para conectarte conexion.execute sql 'sql es una sentencia que realizara una operacion sobre la base de datos puede ser de insercion, actualizacion, eliminacion 'para hacer una seleccion haces set resultado = conexion.execute (sql) 'sql es una sentencia de tipo select, ahora las filas devueltas se almacenan en el recordset resultado para que puedas hacer uso de ellas
Cuando utilizo "execute" para la instrucción sql no me deja moverme entre los datos simplemente me deja guardando pero no me deja ver los resultados(move. next....) sino que me toca restablecer el formulario ¿Cómo hago para que se muevan? Hay va mi código: Private Sub Command1_Click() Adodc1.Recordset.MoveFirst mostrar End Sub Private Sub Command2_Click() If Adodc1.Recordset.AbsolutePosition = adPosBOF Then Adodc1.Recordset.MoveLast Else Adodc1.Recordset.MovePrevious End If mostrar End Sub Private Sub Command3_Click() If Adodc1.Recordset.AbsolutePosition = adPosEOF Then Adodc1.Recordset.MoveFirst Else Adodc1.Recordset.MoveNext End If mostrar End Sub Private Sub Command4_Click() Adodc1.Recordset.MoveLast mostrar End Sub Private Sub Command5_Click() habilitar True limpiar End Sub Private Sub Command6_Click() If Len(Trim(Text1.Text)) = o Then MsgBox ("debe introducir la cedula") End If If Adodc1.Recordset.State = adStateOpen Then Adodc1.Recordset.Close End If cadena = "insert into clientes values(' " & Text1.Text & "','" & Text2.Text & "',#" & DTPicker1.Value & "#)" Adodc1.Recordset.Open cadena, Adodc1.ConnectionString MsgBox "Guardado" Adodc1.Recordset.MoveFirst mostrar End Sub Private Sub Form_Load() On Error GoTo marliz habilitar False Adodc1.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "\bd2.mdb;persist security info=false" Adodc1.RecordSource = "clientes" Adodc1.Refresh mostrar Exit Sub marliz: MsgBox "no hay datos" End Sub Public Sub mostrar() On Error Resume Next Text1.Text = Me.Adodc1.Recordset.Fields(0) Text2.Text = Me.Adodc1.Recordset.Fields(1) DTPicker1.Value = Me.Adodc1.Recordset.Fields(2) End Sub Public Sub habilitar(ByVal estado As Boolean) For X = 0 To Controls.Count - 1 If TypeOf Controls(X) Is TextBox Then Controls(X).Locked = Not estado End If If TypeOf Controls(X) Is DTPicker Then Controls(X).Enabled = estado End If Next X End Sub Public Sub limpiar() For X = 0 To Controls.Count - 1 If TypeOf Controls(X) Is TextBox Then Controls(X).Text = "" End If If TypeOf Controls(X) Is DTPicker Then Controls(X).Value = Date End If Next X End Sub No se cual pueda ser el error ayuda!
Al hacer adodc1. Recordset.open "insert...", conexion Pierdes el recordset de donde habías recuperado tus datos, por lo que veo estas utilizando código amarrado al objeto pintado, en este caso utiliza el método addnew del recordset, With adodc1.recordset .AddNew !Nombre = text1.text !Apellidos = text2.text !Fecha_alta = text3.text .Update End With