No me conecta la aplicación VBA Excel con Mysql(phpmyadmin)

Por medio del presente quiero pedrles el favor de que si me colaboran con lo siguiente:i

Tengo una aplicación en Excel, mi objetivo es conectarla con una base de datos en mysql con la herramienta (phpmyadmin)

Tengo el siguiente código

Sub GenerarInsertInto(
'Definiendo variables
Dim Filas As Integer
Dim Cuenta As Integer
Dim Rango As String
Dim Celda As Range
Dim Valor, Valor1, Valor2 As String
Dim Largo As Integer
Dim RowCursor As Integer
Dim strSQL As String
Dim Mensaje As String
Dim con As New ADODB.Connection
On Error GoTo Err
Set con = New ADODB.Connection
con.Open "DRIVER={MySQL ODBC 5.2 Unicode Driver};" & _
"SERVER=localhost;" & _
"DATABASE=base;" & _
"USER=root"
'
On Error GoTo Err
Filas = Application.WorksheetFunction.CountA(Range("A:A"))
Cuenta = 1
Rango = Application.Transpose(ActiveCell.CurrentRegion.Resize(1).Select)
'
'Extrayendo encabezados
For Each Celda In Selection
Valor = Celda.Value
Valor1 = Valor1 & Valor & ", "
Next Celda
Largo = Len(Valor1)
Valor2 = Left(Valor1, Largo - 2)
'
'Generando Query
With ActiveWorkbook.Sheets("Datos")
For RowCursor = 2 To Filas
strSQL = "insert into factura(Titulo_Minero, Tipo, Ciclo,Producto,Zona1,Etapa_Contractual,Mineral,Numero_factura,Municipio,Valor_parcial) values " & _
Hoja1.Cells(RowCursor, 1) & "','" & _
Hoja1.Cells(RowCursor, 2) & "','" & _
Hoja1.Cells(RowCursor, 3) & "','" & _
Hoja1.Cells(RowCursor, 4) & "','" & _
Hoja1.Cells(RowCursor, 5) & "','" & _
Hoja1.Cells(RowCursor, 6) & "','" & _
Hoja1.Cells(RowCursor, 7) & "','" & _
Hoja1.Cells(RowCursor, 8) & "','" & _
Hoja1.Cells(RowCursor, 9) & "','" & _
Hoja1.Cells(RowCursor, 10) & "');"
Sheets("Query INSERT INTO").Range("A" & Cuenta).Value = strSQL
Cuenta = Cuenta + 1
Next
End With
'
Mensaje = MsgBox("Query generada. Deseas ver el código generado?", vbQuestion + vbYesNo)
If Mensaje = vbYes Then Sheets("Query INSERT INTO").Activate
'
'Manejo de errores
Exit Sub
Err:
MsgBox "Error: " & Err.Description, vbExclamation, "EXCELeINFO"
Errores:
MsgBox "Error: " & Err.Description, vbExclamation, "EXCELeINFO"
End Sub

Pero el problema que tengo es que no me insserta los registros a la base de datos de Mysql, como si no se realizara la conexión.

Respuesta
1

En el código en ningún momento le envías la sentencia o sentencias que creas al motor para que las ejecute.

Hola experto muchas gracias de antemano por su colaboración pero estuve desarrollando este otro código para insertar registros,,,no veo por que me dice que hay error en la instrucción Insert:


Sub Botón4_Haga_clic_en()
Dim con As New ADODB.Connection
con.ConnectionString = "DSN=Factura; Server;SERVER=localhost;DATABASE=base"
con.Open
'Sql = "INSERT INTO factura (Titulo_Minero,Tipo,Ciclo,Producto,Zona1,Etapa_Contractual,Departamento,Mineral,Numero_factura,Municipio,Valor_parcial) VALUES ('543534','v2','1','Esmeralda','1','et','Boyaca','Esmeralda','1','Muzo','56')"
Sql = "INSERT INTO factura (Titulo_Minero,Tipo,Ciclo,Producto,Zona1,Etapa_Contractual,Departamento,Mineral,Numero_factura,Municipio,Valor_parcial) VALUES " & _
"'" & Hoja1.Cells(2, 1) & "', " & _
"'" & Hoja1.Cells(2, 2) & "', " & _
"'" & Hoja1.Cells(2, 3) & "', " & _
"'" & Hoja1.Cells(2, 4) & "', " & _
"'" & Hoja1.Cells(2, 5) & "', " & _
"'" & Hoja1.Cells(2, 6) & "', " & _
"'" & Hoja1.Cells(2, 7) & "', " & _
"'" & Hoja1.Cells(2, 8) & "', " & _
"'" & Hoja1.Cells(2, 9) & "', " & _
"'" & Hoja1.Cells(2, 1) & "');"
cn.Execute Sql
End Sub

El compilador me dice:

Se ha producido el error '-2147217900(8004e14)' en tiempo de ejecución You have an erorr in your SQL syntax; checkthe manual that corresponds to your MySQL server version for the right syntax to use near y me muestra los registros que he insertado entre comillas simples

A que se deberá ese error?

Muchas gracias..

Att. Hernán Camilo

En la sentencia INSERT dices que vas a insertar 11 columnas y en los valores solo envías 10

Pues estuve viendo el código y lo modifique pero a pesar de que arregle el error que me comentaba me sigue apareciendo de que hay un error en el código sql de la consulta

el código quedo:

Sub Botón4_Haga_clic_en()
Dim con As New ADODB.Connection
cn.ConnectionString = "DSN=Factura; Server;SERVER=localhost;DATABASE=base"
cn.Open
'Sql = "INSERT INTO factura (Titulo_Minero,Tipo,Ciclo,Producto,Zona1,Etapa_Contractual,Departamento,Mineral,Numero_factura,Municipio,Valor_parcial) VALUES ('543534','v2','1','Esmeralda','1','et','Boyaca','Esmeralda','1','Muzo','56')"
Sql = "INSERT INTO factura (Titulo_Minero,Tipo,Ciclo,Producto,Zona1,Etapa_Contractual,Departamento,Mineral,Numero_factura,Municipio,Valor_parcial) VALUES " & _
"'" & Hoja1.Cells(2, 1) & "', " & _
"'" & Hoja1.Cells(2, 2) & "', " & _
"'" & Hoja1.Cells(2, 3) & "', " & _
"'" & Hoja1.Cells(2, 4) & "', " & _
"'" & Hoja1.Cells(2, 5) & "', " & _
"'" & Hoja1.Cells(2, 6) & "', " & _
"'" & Hoja1.Cells(2, 7) & "', " & _
"'" & Hoja1.Cells(2, 8) & "', " & _
"'" & Hoja1.Cells(2, 9) & "', " & _
"'" & Hoja1.Cells(2, 10) & "', " & _
"'" & Hoja1.Cells(2, 11) & "');"
cn.Execute Sql
End Sub

Pero al ejecutar la macro me sigue mostrando el error que le mencione ayer, que hay problema de sintaxys

Vale mencionar que aquí solo inserto la información que el usuario digita en el Excel por que en la tabla en Mysql tengo un campo adicional que es autoincrementable, obviamente no lo incluyo dentro del desarrollo de la macro, sera que eso tiene algo que ver?

Gracias

Si hay error de sintaxis es porque lo hay y el motor de sql es quien te esta diciendo que hay un error, no porque armes una cadena que cumpla con parámetros como que el numero de campos detallados sea el mimso del numero de valores.

Los errores de sintaxis son tambien porque por ejemplo estas incluyendo una fecha y no esta en el formato que el servidor lo entienda. Porque necesitas un nuemro y lo pasas como cadena, etc.

Muchas gracias todo salio muy bien,,,

pude trabajar muy bien lo que necesitaba en las bases de datos con Excel y Mysql (Consultar, borrar, actualizar e insertar registros), me gustaría saber por otra parte experto, que posibilidad de trabajar y conseguir proyectos tendría,, me pongo a sus ordenes debido a que desde la semana pasada estoy sin empleo y me gustaría trabajar en un proyecto,,he enviado hojas de vida pero solo uno se queda en eso pasar de filtro en filtro y no se logra nada.

Si desea le envío la hoja de vida a algún correo o lugar que me pueda usted facilitar

Éxitos y bendiciones!

Mis datos de contacto son los siguientes:

Ing. Hernán Camilo Martínez

Bogotá D.C Colombia

mail: [email protected]

num cel 3012285479

Pásame tu Hv a ralvaradot arroba hotmail punto com

Tengo una oferta para un dev junior y para que avance en la empresa y en el proyecto.

Cordial saludo


Muchas gracias Ingeniero ya envíe mi hoja de vida a su correo electrónico.
Felicidades!.


Att. Ing. Hernán Camilo Martínez

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas