Hola,me gustaria saber como se hace (en vb) para que se puedan registrar,poner un nombre de usuario y pass,y luego logearse,imagino que con base de datos,pero no se exactamente como hacerlo.
Gracias y saludos.
te recomiendo que primero veas temas relacionados con BD
Conectarse a una BD de Access en VB
http://foro.elhacker.net/index.php/topic,94263.msg442391.html#msg442391
aunque para mi seria mejor guardar la contraseña cifrada en un archivo
Si sobre base de datos pues se algunas cosas,el problema es que no se como añadir el contenido de un textbox(por ejemplo el user)a una base de datos(esto seria cuando uno se registra),leerlo si que se.
Otra cosa si tu me dices lo de guardarlo en un archivo cifrado,como seria?
Gracias y saludos.
primero para guardar datos en una BD lo haces con addnew
dim Bd as database
dim Tb as database
set bd = workspaces(0).opandatabase("c:\basededatos.mdb",Exclusivo, SoloLectura)
set tb = bd.openrecordset("tabla")
tb.addnew
tb!Usuario = txtUsuario.text
tb!Pass = txtpassword.text
tb.update
tb.close
bd.close
set tb = nothing
set bd = nothing
segundo
para lo del archivo, pues puedes idearte algun proceso que si tu le pones "usuario1" te guarde "A%S23$Q=WE(2" o algo asi, eso ya es custión de como lo quieras hacer.
Ok,muchas gracias! me has ayudado mucho,de verdad gracias.
Por cierto esta todo perfecto excepto el Tb que debe ser declarado como Recordset.Funciona perfecto gracias otra vez.
Saludos.
Hola,lo siento,tengo otra duda,ahora como hago para comprobar que existe,si existe que por ejemplo vaya al siguiente form,esque se buscar y mostrar los datos pero no se como mirar si existen.
Gracias y saludos.
EDITADO:Perdon ya me salió,xD.Lo pongo por si otro tiene el mismo problema(si esta mal decidmelo):
Dim bd As Database
Dim tb As Recordset
Set bd = Workspaces(0).OpenDatabase("C:\Documents and Settings\USER\Escritorio\bd1.mdb")
Set tb = bd.OpenRecordset("tabla1")
If tb!User = Text1.Text And tb!pass = Text2.Text Then
Form2.Hide
Form3.Show
Else
MsgBox ("Datos incorrectos")
End If
pues lo haces con una consulta SQL, un ejemplo:
Dim bd As Database
Dim tb As Recordset
Set bd = Workspaces(0).OpenDatabase("C:\Documents and Settings\USER\Escritorio\bd1.mdb")
Set tb = bd.OpenRecordset("SELECT * FROM tabla1" & _
"WHERE User = '" & text1.text & "' " & _
"AND Pass = " & text2.text & "';")
If tb.Recordcount > 0 then ' Encontro por lo menos un registro
Unload me
ElotroForm.show
end if
'No olvides cerrar la BD y liberar la memoria
tb.close
bd.close
set tb = nothing
set bd = nothing
Gracias CeLaYa,de todas formas encontré otra manera pero probaré la tuya. ::)
Gracias y Saludos.
Hola,tu code me da error en la SQL,de todas formas el mio va,pero por ejemplo cuando en el primer form me registro y los datos se añaden,cuando voy al form2 que es donde login,los datos recien puestos no los reconoce,pero si cierro el programa y lo ejecuto luego si.Y yo quiero que nada mas registrarte hagas login sin necesidad de cerrar el programa.
Gracias y saludos.
creo que el error pueda ser que me falto un espacio en la consulta SQL
Cita de: CeLaYa en 7 Noviembre 2006, 00:34 AM
Set tb = bd.OpenRecordset("SELECT * FROM tabla1" & _
"WHERE User = '" & text1.text & "' " & _
"AND Pass = " & text2.text & "';")
lo correcto seria:
Set tb = bd.OpenRecordset("SELECT * FROM tabla1 " & _
"WHERE User = '" & text1.text & "' " & _
"AND Pass = " & text2.text & "';")
y para eso de que no te reconoce los datos, porque no pones el codigo que tienes y vemos que se puede hacer
Private Sub Command1_Click()
Dim bd As Database
Dim tb As Recordset
Set bd = Workspaces(0).OpenDatabase("C:\Documents and Settings\USER\Escritorio\bd1.mdb")
Set tb = bd.OpenRecordset("tabla1")
If tb!User = Text1.Text And tb!pass = Text2.Text Then
Unload Me
Form3.Show
Else
MsgBox ("Datos incorrectos")
tb.Close
bd.Close
Set tb = Nothing
Set bd = Nothing
End If
El otro code(el del registro del usuario)es el tuyo.
Gracias otra vez CeLaYa.
aqui el problema es que no estas haciendo una busqueda en tu BD, lo que estas haciendo es comparar el usuario que escribes en el Text1 con el registro al que actualmente esta apuntando la BD, para corregir esto puedes hacer una consulta SQL (como la que te pase) o si lo quieres pudes modificar un poco el codigo que ya tienes
Private Sub Command1_Click()
Dim bd As Database
Dim tb As Recordset
Set bd = Workspaces(0).OpenDatabase("C:\Documents and Settings\USER\Escritorio\bd1.mdb")
Set tb = bd.OpenRecordset("tabla1")
tb.moveFist ' Movemos el puntero al inicio de la tabla
'Estableces el criterio de búsqueda
tb.FindFisrt (User = '" & Text1.Text & "' And pass = '" & Text2.Text & "'")
if tb.NoMatch then
' No se encotro el usuario
MsgBox ("Datos incorrectos")
Else
Form3.Show
end if
tb.Close
bd.Close
Set tb = Nothing
Set bd = Nothing
End If
Ok,muchas gracias ya lo entendi.De verdad mil gracias me ayudaste mucho CeLaYa.
Saludos.
Hola amigos, tengo una duda ya que, me sale:
Run Time Error '3251':
Operacion No Valida para este tipo de objeto
Y me sale en el error aqui:
Private Sub Command1_Click()
Dim bd As Database
Dim tb As Recordset
Set bd = Workspaces(0).OpenDatabase("C:\Documents and Settings\Administrador\Escritorio\Chat Visual Basic\Servidor\db\cuentas.mdb")
Set tb = bd.OpenRecordset("tabla1")
tb.MoveFirst ' Movemos el puntero al inicio de la tabla
'Estableces el criterio de búsqueda
tb.FindFirst (User = "" & Text1.Text & "" And pass = "" & Text2.Text & "'")
If tb.NoMatch Then
' No se encotro el usuario
MsgBox ("Datos incorrectos")
Else
Form3.Show
End If
tb.Close
bd.Close
Set tb = Nothing
Set bd = Nothing
End Sub
Bueno espero que alguien pueda ayudarme...
Salu2
Ranslsad
Asi a simple vista vewo que usas doble comillas "",y no es asi,fijate en el ejemplo de CeLaYa,usa una doble comilla y un ' .No como tu que usas dos ".
Prueba cambiando eso.
Ahi me sale errores de esas mismas comillas.. :S por eso yo las cambie por "comillas" pero antes estaba esto'
Bueno.. aun no e podido resolver mi duda :(
Salu2
Ranslsad
se supone que tu le tienes que enviar una string... por lo tanto estas uniendo cadenas ... concepto básico de vb ...
"cadenita con chorraditas" & " en sentencias se utiliza la comilla simple para comparar strings pepe = 'pony' "
ahora componemos una sentencia
'comilla simple 'comilla simple
"select manolito from manolitos where nombre='" & variablecnombre & "'"
Bueno gracias, pero ya lo e dejao a los MDB como e estado 4 dias entancado, pues el registro se guarda en txt y luego se lee normal.. asi no me lio tanto y es facil!!
Aun asi muchisimas gracias ;)
Salu2
Ranslsad