Saltar al contenido

Problema con conexion odbc mysql


jeladio

Recommended Posts

publicado

Hola amigos acudo austedes por el siguiente problema: tengo este codigo para poder acceder a MYSQL

Set rs.ActiveConnection = cn
rs.CursorLocation = adUseClient
rs.CursorType = 3
rs.LockType = 3
dato = Sheets("Hoja1").Range("A1").Value
rs.Source = "SELECT * FROM FOTOS " _
& "WHERE NOMBRE =" _
& Chr(34) & dato & Chr(34) & ";"[/CODE]

mi problema es que donde dice sr.source es un string pero no puedo ponerlo como Dim rs.source as string porque me marca esa linea en rojo como puedo hacer para declararlo como un string.

saludos

publicado

Gracias Macro la verdad no entiendo lo que dices porque yo solo estoy adaptando el codigo y no entiendo de programacion si pudieras explicarme un poco mejor te lo voy a agradecer.

publicado

Sube el archivo para ver toda la macro, y de paso cuenta que quieres hacer con el resultado de la consulta.

Mañana lo miro.

publicado

Gracias nuevamente Estimado Macro: estoy incluyendo el codigo completo. lo estoy enviando tal y como lo tengo funcionando, esta macro la utilizo para bajar imagenes desde una base de datos MYSQL

Sub bajar2()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim ms As New ADODB.Stream
Dim archivo As String

cn.ConnectionString = "PROVIDER=MSDASQL.1;DRIVER={MySQL ODBC 5.1 Driver};SERVER=xxx.xxx.xx.xx;DATABASE=proteo_base;UID=proteo;PWD=2}XXX64u1;"
cn.Open

Set rs.ActiveConnection = cn
rs.CursorLocation = adUseClient
rs.CursorType = 3
rs.LockType = 3
rs.Source = "SELECT * FROM FOTOS WHERE id=14"
rs.Open
ms.Type = adTypeBinary
ms.Open
ms.Write rs.Fields("FOTO").Value
nombre = rs.Fields("NOMBRE").Value
Ruta = "C:\Users\PRUEBA\"
archivo = Ruta & nombre
ms.SaveToFile (archivo), adSaveCreateOverWrite


rs.Close
ms.Close
cn.Close
Set ms = Nothing
Set rs = Nothing
Set cn = Nothing
End Sub[/CODE]

todo funciona pero lo que quiero es que en la linea WHERE id=14 pueda indicar el numero de registro desde la hoja de excel en mi caso desde la celda a1, a2, a3 de la hoja 1, segun cuantos registros haya en la columna A asi sea las veces que se pueda repetir el bucle para bajar todas las imagenes enlistadas en la columna A. espero haberme dado a entender.

saludos

publicado

Hola

En el ejemplo que colocas el campo id es numérico, intenta quitantole las comillas Chr(34), además la consulta la finalizas con ; (punto y coma) y en el ejemplo que colocas tampoco las lleva, intenta quitándoselas

saludos

publicado

Prueba con la macro modificada.


Sub bajar2()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim ms As New ADODB.Stream
Dim Archivo As String
Dim Ruta As String
Dim Nombre As String

Ruta = "C:\Users\PRUEBA\"
cn.ConnectionString = "PROVIDER=MSDASQL.1;DRIVER={MySQL ODBC 5.1 Driver};" & _
"SERVER=xxx.xxx.xx.xx;DATABASE=proteo_base;UID=proteo;PWD=2}XXX64u1;"
cn.Open

For x = 1 To Range("A" & Rows.Count).End(xlUp).Row '<==
Set rs.ActiveConnection = cn
rs.CursorLocation = adUseClient
rs.CursorType = 3
rs.LockType = 3
rs.Source = "SELECT * FROM FOTOS WHERE id=" & CLng(Range("A" & x)) '<==
rs.Open
ms.Type = adTypeBinary
ms.Open
ms.Write rs.Fields("FOTO").Value
Nombre = rs.Fields("NOMBRE").Value
Archivo = Ruta & Nombre
ms.SaveToFile (Archivo), adSaveCreateOverWrite
rs.Close
ms.Close
Set ms = Nothing
Set rs = Nothing
Next '<==

cn.Close
Set cn = Nothing
End Sub

[/CODE]

PD. Saludos Juan Carlos, cuanto tiempo sin "verte".

publicado

Mil gracias estimado Macro Antonio funcionò a la perfeccion, solo una preguntilla, que significa "Clng" porque cuando cambio la referencia y que en lugar de indicar un Id numerico y hago referencia a un campo con texto me da error, si pudieras indicarme te lo voy a agradecer si no pues no hay problema, mi caso esta resuelto.

saludos de Guatemala

publicado

Estimado Macro Antonio: disculpa que nuevamente te este molestando y como te dije la semana pasada la ayuda que me diste funciona a la perfecccion sin embargo debido a unos cambios que estoy haciendo necesito ubicar la imagen desde el campo NOMBRE que contiene el nomb re de las imagenes guardadas (nombre.jpg) y no desde el ID. pero con el codigo anterior no me funciona, se puede hacer algo al respecto o que puedo hacer al respecto.

saludos

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.