A veces necesiatamos realizar una doble consulta en Mysql, para esto simplemente realizamos la primera separamos con un punto y coma (;) la seguna, pero en VBA Excel no podemos guardarla en una solo variable tenemos que guardar las consultas por separado en variable sindependientes.
El siguiente ejemplo simula la accion bancaria de solicitar una consulta de saldo de acuerdo al numero de cuenta, aqui se realiza una consulta de actualización (update) y otra de selección de datos(Select).
Private Sub Consulta_Click()
Dim
conexion As New ADODB.Connection
'lo mismo para el nombre del servidor, base
de datos, usuario y la consulta sql
Dim
miservidor, bd, user, sql, consulta As String
'el
Recordset
Dim rs As
ADODB.Recordset
'Estableciendo la conexión
miservidor = "127.0.0.1"
bd = "control"
user = "root"
Set conexion = New ADODB.Connection 'con
esto utilizamos la conexión indicada más arriba
conexion.Open
"DRIVER={MySQL ODBC 3.51 Driver}" _
& ";SERVER=" & miservidor
_
& ";DATABASE=" & bd _
& ";UID=" & user _
&
";OPTION=16427?"
' Se crea un objeto rs a partir de la clase RecordSet que permite transferir los datos entre Mysql y Excel
Set rs = New ADODB.Recordset
'Consulta que actualiza el saldo del cliente descontando 1000 pesos cada vez que realice esta operación
Consulta = “UPDATE clientes set saldo = saldo – 1000 where No_cuenta
=’”& TextBox1.Text & “’”
'Ejecutamos la consulta para que se actualice en Mysql
'Ejecutamos la consulta para que se actualice en Mysql
conexion.Execute Consulta
'La segunda consulta muestra en Excel los datos solicitados
sql = "SELECT No_Cuenta, fecha, hora, saldo from clientes " & _
'La segunda consulta muestra en Excel los datos solicitados
sql = "SELECT No_Cuenta, fecha, hora, saldo from clientes " & _
"WHERE No_Cuenta = '" & TextBox1.Text &
"'"
rs.Open sql, conexion
With Worksheets(1).Cells
.ClearContents
.CopyFromRecordset rs
End With
'Cerramos la conexión
On Error Resume Next
rs.Close
Set rs = Nothing
conexion.Close
Set conexion = Nothing
On Error GoTo 0
End Sub
Colocar fecha y hora actual en una tabla MySql
With Worksheets(1).Cells
.ClearContents
.CopyFromRecordset rs
End With
'Cerramos la conexión
On Error Resume Next
rs.Close
Set rs = Nothing
conexion.Close
Set conexion = Nothing
On Error GoTo 0
End Sub
Colocar fecha y hora actual en una tabla MySql
mysql> CREATE TABLE tabla_ejemplo (
-> id varchar (12), -> descripcion VARCHAR(30), -> fecha TIMESTAMP DEFAULT NOW()); Query OK, 0 rows affected (0.03 sec)
No hay comentarios:
Publicar un comentario