Autor
|
Tema: Ayuda Con resgitro (Leído 4,002 veces)
|
blood_brother
Desconectado
Mensajes: 62
llBlood_Brotherll
|
Estoy Haciendo un Launcher Donde del Mismo Se Pueda Hacer un registro de de los usuarios pero cuando le doy a registrar este es mi codigo, Para base de datos estoy usando es Mysql Public BD As ADODB.Connection Public RecSQL As ADODB.Recordset Private Sub connect() Dim IPMysql As String Dim User As String Dim Password As String
Set BD = New ADODB.Connection BD.ConnectionString = "Driver={Mysql ODBC 3.51 Driver};" & _ IPMysql = "127.0.0.1" 'IP Del Mysql ' User = "root" ' Usuario de la Base de Datos' Password = "root" 'Password de la Base de Datos' BD.Open
End Sub
Private Sub ButtonTransparent1_Click(Index As Integer)
Set RecSQL = New ADODB.Recordset
RecSQL.Open "INSERT INTO Registro (Account_id, Password, Nombre,Email, Birth_Date) VALUES (" & Val(Text1) & ",'" & Text2 & ", " & Text3 & ", " & Text4 & ", " & Text5 & ", " & Text6 & ", " & Text7 & ", " & Text8 & "')", BD, adOpenStatic, adLockOptimistic ----> Esta Linea Sale Resaltada
Set RecSQL = Nothing
Form2.Hide End Sub
|
|
|
En línea
|
|
|
|
seba123neo
|
eso esta mal, para insertar un registro no debes abrir un recordset, debes ejecutar un comando...
|
|
|
En línea
|
|
|
|
blood_brother
Desconectado
Mensajes: 62
llBlood_Brotherll
|
me podrias explicar por favor como lo hago ???
|
|
|
En línea
|
|
|
|
Mr. Crowley
Desconectado
Mensajes: 343
Costa Rica
|
Talvez esto le sirva: Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset '//abrir la conexion a mysql (conConexion) With rs '//establecer la conexion .ActiveConnection = conConexion .CursorLocation = adUseClient .CursorType = adOpenDynamic .LockType = adLockOptimistic .Open "INSERT INTO tabla(campos) VALUES(valores)" If .State Then .Close '//cerrar la conexion If conConexion.State Then conConexion.Close End With Set rs = Nothing
Edito: '//abrir la conexion a mysql (conConexion)
Ahi tiene que hacer la conexion a la base de datos.
|
|
« Última modificación: 16 Octubre 2009, 15:07 pm por Mr. Crowley »
|
En línea
|
|
|
|
blood_brother
Desconectado
Mensajes: 62
llBlood_Brotherll
|
Este es mi Codigo Fuente de mi Form de Registro Public BD As ADODB.Connection Public RecSQL As ADODB.Recordset Private Sub connect() Dim IPMysql As String Dim SelectBD As String Dim User As String Dim Password As String
Set BD = New ADODB.Connection BD.ConnectionString = "Driver={Mysql ODBC 3.51 Driver};" & _ IPMysql = "127.0.0.1" 'IP Del Mysql ' SelectBD = "ae_server_ls" 'Selecion de la Base de Datos' User = "root" ' Usuario de la Base de Datos' Password = "synopsis" 'Password de la Base de Datos' BD.Open
End Sub Private Sub ButtonTransparent1_Click(Index As Integer) Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset '//abrir la conexion a mysql (conConexion) BD.ConnectionString = "Driver={Mysql ODBC 3.51 Driver};" & _ IPMysql = "127.0.0.1" 'IP Del Mysql ' SelectBD = "ae_server_ls" 'Selecion de la Base de Datos' User = "root" ' Usuario de la Base de Datos' Password = "synopsis" 'Password de la Base de Datos' BD.Open With rs '//establecer la conexion .ActiveConnection = conConexion .CursorLocation = adUseClient .CursorType = adOpenDynamic .LockType = adLockOptimistic .Open "INSERT INTO Registro(campos) VALUES(id_personal,acc_id,name,email,birth)" If .State Then .Close '//cerrar la conexion If conConexion.State Then conConexion.Close End With Set rs = Nothing End Sub
Private Sub ButtonTransparent2_Click() On Error GoTo Ver Set RecBD = New ADODB.Recordset RecBD.Open "SELECT * from account_data,name,id, BD, adOpenStatic, adLockOptimistic"
While Not RecBD.EOF MsgBox "Ya Existe Ese ID" Wend End Sub
Private Sub ButtonTransparent3_Click() Form2.Hide End Sub
|
|
|
En línea
|
|
|
|
Mr. Crowley
Desconectado
Mensajes: 343
Costa Rica
|
Bueno... creo que se esta complicando la vida haciendo un procedimiento de conexion en cada form... le recomiendo que coloque ese procedimiento de conexion en un modulo... algo asi: modMySQL Option Explicit Public conConexion As ADODB.Connection Public strCadenaConexion As String
'//CONECTAR AL SERVIDOR DE DATOS Public Sub psConectar() On Error GoTo Error_Handler: Set conConexion = New ADODB.Connection conConexion.ConnectionString = modMySQL.strCadenaConexion conConexion.Open Exit Sub Error_Handler: Set conConexion = Nothing MsgBox Err.Description & " (" & Err.Number & ").", vbCritical End Sub
La variable publica strCadenaConexion la puede cargar de un archivo de texto (o desde el registro) cuando abre el primer form de la aplicacion... asi no va a tener que volver a compilar el proyecto cada vez que se cambie de servidor, usuario, etc. Bien.. ahora.. con este ejemplo se conecta a la base de datos e inserta... (recuerde que tiene que definir la cadena de conexion en la variable publica strCadenaConexion): Private Sub psGuardar_Usuario() Dim rs As ADODB.Recordset On Error GoTo Error_Handler Set rs = New ADODB.Recordset Call modMySQL.psConectar With rs .ActiveConnection = modMySQL.conConexion .CursorLocation = adUseClient .CursorType = adOpenDynamic .LockType = adLockOptimistic .Open "INSERT INTO tabla(campos) VALUES(valores)" If .State Then .Close If modMySQL.conConexion.State Then modMySQL.conConexion.Close End With Set rs = Nothing Exit Sub Error_Handler: MsgBox Err.Description & " (" & Err.Number & ").", vbCritical End Sub
La cadena de conexion puede ser algo asi: modMySQL.strCadenaConexion = "driver={MySQL ODBC 3.51 Driver};server=" & Trim(txtServidor) & ";" _ & "uid=usuario_mysql;pwd=password_mysql;database=base_de_datos;connection="
Donde txtServidor es un TextBox que se coloca en el form de Login... (esto es para lo que le comente anteriormente), que no tenga que estar compilando el proyecto cada vez que cambian el nombre del server, etc.
|
|
|
En línea
|
|
|
|
seba123neo
|
Private Sub psGuardar_Usuario() Dim rs As ADODB.Recordset On Error GoTo Error_Handler Set rs = New ADODB.Recordset Call modMySQL.psConectar With rs .ActiveConnection = modMySQL.conConexion .CursorLocation = adUseClient .CursorType = adOpenDynamic .LockType = adLockOptimistic .Open "INSERT INTO tabla(campos) VALUES(valores)" If .State Then .Close If modMySQL.conConexion.State Then modMySQL.conConexion.Close End With Set rs = Nothing Exit Sub Error_Handler: MsgBox Err.Description & " (" & Err.Number & ").", vbCritical End Sub
sigue estando mal, con un recordset no se insertan registros, es con un objeto command. saludos.
|
|
|
En línea
|
|
|
|
blood_brother
Desconectado
Mensajes: 62
llBlood_Brotherll
|
me puedes decir como lo hago por necesito hacer eso por favor
|
|
|
En línea
|
|
|
|
seba123neo
|
haber algo asi: en algun modulo declaras publico el comando. Public mComando As ADODB.Command
y lo seteas donde empieze tu programa, en el Sub_Main o el el Load del formulario de inicio que tengas. Set mComando = New ADODB.Command
y cuando quieras usarlo le seteas la conexion que va a usar y la cadena SQL, y lo ejecutas: mComando.ActiveConnection = TuConexion mComando.CommandText = "INSERT INTO Clientes (id,nombre) VALUES (1,'seba')" mComando.Execute
esto que te digo esta en cualer lado que hable de ADO, busca y vas a encontrar, aca tenes un monton de ejemplos: ADO - Microsoft Activex Data Objects saludos.
|
|
|
En línea
|
|
|
|
blood_brother
Desconectado
Mensajes: 62
llBlood_Brotherll
|
ole gracias tio me ayuda bastante lo que me pasaste xD
|
|
|
En línea
|
|
|
|
|
|