Saltar al contenido

Conectar usuarios de manera simultánea a mysql desde excel


Recommended Posts

publicado

Tengo una macro en excel que inserta registros en un bd en MySQL alojada en un servidor y requiero que varios usuarios puedan guardar registros en la bd pero al parecer deben instalar el driver ODBC en cada uno de sus pc. ¿Es posible que utilicen la macro son tener que instalar el driver y configurar la conexión?

Gracias

publicado
¿Es posible que utilicen la macro sin tener que instalar el driver y configurar la conexión?

Si la conexión la haces por ODBC, la respuesta a tu pregunta es NO.

publicado

en la empresa donde trabajo usan un complemento excel para hacer migracion y extraccion sql desde AS400 el complemento es este no se si sea lo mismo xq no manejo mucho esto pero espero te pueda ayudar.

cwbtfxla.rar

publicado

hola [uSER=128777]@javihng123[/uSER] vamos por partes

primero si tienes que instalar el driver si quieres utilizar la conexion directa de vba aqui un ejemplo

Public BdMysql As ADODB.Connection
Public Sub Conexion_Mysql()
On Error GoTo Ver
Set BdMysql = New ADODB.Connection
BdMysql.ConnectionString = "driver={MySQL ODBC 3.51 Driver};" & _
"Server=69.167.136.79;" & _
"Port=3306;" & _
"Database=soluc107_bbasic;" & _
"User=root;" & _
"Password=root;" & _
"Option=3;"

BdMysql.Open


Exit Sub
Ver:
MsgBox "Nº de error: " & Err.Number & " | " & Err.Description, vbCritical, "Control de errores"
Err.Clear
End Sub
[/CODE]

ojo si a la hora realizar un ABM (alta, baja o modificación) afectas mas de dos tablas es recomendable utilizar transacciones para que cumplas con el ACID ojo mysql solo acepta transacciones si tus tablas son innoDB por que MyISAM no las soporta, ahora si si son innoDB y utilizas transacciones tienes que deshabilitar el autocommit que trae mysql por default

[CODE] On Error GoTo ErrorHandler
With Local_Mysql
.Execute "SET AUTOCOMMIT=0", adCmdText ' Desactiva el auto commit de mysql
.Execute "BEGIN", adCmdText 'Inicia La Transaccion mysql
.Execute strSql, adCmdText 'Comando Sql
.Execute "COMMIT", adCmdText 'Confirma la Transaccion Sql
End With
Exit Function
ErrorHandler:
Local_Mysql.Execute "ROLLBACK", adCmdText ' Retorna la Transaccion en caso de error
[/CODE]

ahora en este tipo de transacciones es bueno abrir y cerrar la conexión por cada procedimiento.......

;) ahora te comento si es posible agregar a tu base de datos mysql en un servidor desde vba sin necesidad de utilizar el driver ojo pero aqui utilizarias como intermediario un archivo php que se alojaria en el servidor es algo sencillisimo y que es facil de implementar saludos

publicado

hola. muchas gracias por sus respuestas.

sobre el comentario de [uSER=64660]@asesorcperic[/uSER], me gustaria saber el archivo php donde debe estar alojado y si tienes un ejemplo.

gracias de nuevo

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.