Autor
|
Tema: Condicional para elegir formulario con BD (Leído 3,250 veces)
|
mbc
Desconectado
Mensajes: 90
|
Estoy usando este pequeño script para el ingreso a un menu en dicho programa. Set conn = New ADODB.Connection conn.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & db_file & ";" & _ "Persist Security Info=False" conn.Open
' Look up the user name/password. statement = "SELECT COUNT (*) FROM Users WHERE " & _ "UserName='" & Replace(txtUserName.Text, "'", "''") & "' AND " & _ "Password='" & Replace(txtPassword.Text, "'", "''") & "'" Set rs = conn.Execute(statement)
' See if we got anything. If CLng(rs.Fields(0)) < 1 Then ' There is no match. ' Do not allow the login. Unload Me MsgBox "Invalid user name/password." Else ' There is a match. ' Display the program's main form. Form1.Show Unload Me End If
rs.Close conn.Close El problema esta es en que me pidieron, tener varios niveles de acceso, usuario estandar y usuario admin. En la base de datos agregue un campo llamado tipo, donde los valores son numerico, 1=admin y 2=estandar Quiero saber como construir un condicional para que cuando el user sea admin cargue el form2 y cuando sea estandar el form3. Internamente debe verificar que tipo de numero hay en el campo Tipo. Saludos
|
|
« Última modificación: 10 Agosto 2009, 03:17 am por mbc »
|
En línea
|
Mira a tu alrededor siempre estaremos, donde hay sistema de comunicacion hay podemos estar, asi que no corras.
|
|
|
cassiani
Desconectado
Mensajes: 978
« Anterior | Próximo »
|
ok, hay varias formas, puedes por ejemplo usar este mismo bloque ' See if we got anything. If CLng(rs.Fields(0)) < 1 Then ' There is no match. ' Do not allow the login. Unload Me MsgBox "Invalid user name/password." Else 'AQUI End If y donde te señale, haces una nueva consulta a la base de datos y extraes el valor del campo, luego comparas y das el acceso dependiendo del caso, o puedes obtener el valor antes, en el query inicial y luego haces la comparación donde te especifique anteriormente. saludos
|
|
|
En línea
|
|
|
|
mbc
Desconectado
Mensajes: 90
|
Si sabia que era ahi, pero no se mucho de las consultas a base de datos...
|
|
|
En línea
|
Mira a tu alrededor siempre estaremos, donde hay sistema de comunicacion hay podemos estar, asi que no corras.
|
|
|
jack06
Desconectado
Mensajes: 133
anarkia99-Soft.
|
wenas mas abajo ya habian hablado de este incluso deje un pekeño ejemplo http://www.megaupload.com/?d=9QSOU62YSalu2....
|
|
|
En línea
|
(̅_̅̅_̅(̅_̅_̅_̅_̅() ڪ €l $åßîø nø d nµn¢å tødø lø qµ£ Þî£n$å, Þ£®ø $î£mÞ®£ Þî£n$å tødø lø qµ£ d (̅_̅̅_̅(̅_̅_̅_̅_̅() ڪ
|
|
|
mbc
Desconectado
Mensajes: 90
|
Hola que tal gracias por tu programa.. ya lo estoy verificando... dejame ver si me funciona...
|
|
|
En línea
|
Mira a tu alrededor siempre estaremos, donde hay sistema de comunicacion hay podemos estar, asi que no corras.
|
|
|
mbc
Desconectado
Mensajes: 90
|
Bueno he tratado de agarrar el valor de nivel.... pense que seria algo asi.... statement = "SELECT COUNT (*) FROM Users WHERE " & _ "UserName='" & Replace(txtUserName.Text, "'", "''") & "' AND " & _ "Password='" & Replace(txtPassword.Text, "'", "''") & "'" Set rs = conn.Execute(statement) VerN = rs.Fields("Nivel") ' See if we got anything. If CLng(rs.Fields(0)) < 1 Then ' There is no match. ' Do not allow the login. Unload Me MsgBox "Invalid user name/password." Else If VerN = 1 Then Form1.Show Unload Me Else Form2.Show Unload Me End If lo que esta en rojo fue lo que trate de arreglar... pero creo que la para capturarlo tendría que ser desde la consulta en SQL
|
|
|
En línea
|
Mira a tu alrededor siempre estaremos, donde hay sistema de comunicacion hay podemos estar, asi que no corras.
|
|
|
Angeldj27
Desconectado
Mensajes: 199
Ahorra Agua... Beba Cerveza
|
Creo que eso te quedaria mejor con el componente ado pero bueno, cuando haces la primera consulta le asignas a una variable el valor del campo nivel del user y pass que has combalidadop y despues haces una condicion y llamas uno o el otro form y listo
|
|
|
En línea
|
"Que vamos a hacer Mañana?..... Lo mismo que hacemos todos los dias Pinky tratar de Conquistar el Mundoooo!!!!!
|
|
|
cassiani
Desconectado
Mensajes: 978
« Anterior | Próximo »
|
prueba así Option Explicit Public rst As ADODB.Recordset Public sSQL As String Public sConex As String Private Sub Command1_Click() sSQL = "SELECT * FROM Users WHERE " & _ "UserName='" & Replace(txtUserName.Text, "'", "''") & "' AND " & _ "Password='" & Replace(txtPassword.Text, "'", "''") & "'" rst.Open sSQL, sConex, adOpenDynamic, adLockOptimistic If rst.EOF And rst.BOF Then MsgBox "Invalid user name/password." Else Select Case (rst!Nivel) Case 1: Form1.Show Case 2: Form2.Show End Select End If rst.Close End Sub Private Sub Form_Load() Set rst = New ADODB.Recordset sConex = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Replace(App.Path & "\db.mdb", "\\", "\") End Sub
obviamente hay mejores formas de trabajar
|
|
|
En línea
|
|
|
|
|
|