Sql

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.

1 respuesta

Respuesta
1
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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas