Visual Basic.NET - Consulta con Access

 
Vista:
sin imagen de perfil

Consulta con Access

Publicado por juarez (7 intervenciones) el 20/10/2013 02:51:49
Buenas Tardes

Estoy haciendo un programa en cual primero tengo que loguear a varios usuarios, y dependiendo l usuario necesito que me muestre solo sus datos, el login ya lo tengo pero lo que no se es como al pasar el formulario principal me muestre directamente sus datos con la consulta ya hecha
aqui pongo el codigo del formulario login

Option Explicit On
Imports System.Data.OleDb

Public Class FrmLogin
Dim OK As Boolean

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' Cadena de conexión ( INDICAR EL PATH DE LA BASE DE DATOS )

Const C_CADENA = ("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\PUNT1R.mdb;" & _
"Jet OLEDB:Database Password=A6G7T2GD;")

'Variable para el recordset
Dim Rst_Login As ADODB.Recordset

' crea el recordset
Rst_Login = New ADODB.Recordset

'Variable para el resultado del msgbox
Dim response As MsgBoxResult

Dim SQL As String

' consulta SQL ( Campos: Nombre y Password)Textbox ( txt_Usuario y txt_Password) Tabla: Usuarios()

SQL = "SELECT CLAVE, RFC, NOMBRE, APEPATERNO, APEMATERNO " & " FROM EMPLEADO " & "WHERE CLAVE = '" & txt_Usuario.Text & "'" & "AND RFC = '" & txt_Password.Text & "'"

With Rst_Login
' Abre el recordset
.Open(SQL, C_CADENA)

' Si el recordset está vacío es por que es incorrecto
If .EOF Then
MsgBox(" La CLAVE o el RFC es incorrecto, Login incorrecto ", MsgBoxStyle.Exclamation)
' Cierra y descarga el Recordset
Rst_Login.Close()
Rst_Login = Nothing
Exit Sub
Else
response = MsgBox(" Bienvenido " & Rst_Login.Fields("APEPATERNO").Value & Rst_Login.Fields("APEMATERNO").Value & Rst_Login.Fields("NOMBRE").Value, MsgBoxStyle.OkCancel)
' Abre el formulario principal del programa
If response = MsgBoxResult.Cancel Then
txt_Usuario.Clear()
txt_Password.Clear()
Return
Else
' Cierra y descarga el Recordset
'Rst_Login.Close()
' Rst_Login = Nothing
'Cambia el Flag para que no cierre el programa con End
OK = True
FrmPrincipal.Show()
Me.Close()
End If
End If
End With
' Descarga el formulario y prosigue en el SubMain
End Sub

Private Sub EMPLEADOBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.Validate()
Me.EMPLEADOBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.PUNT1RDataSet)

End Sub

Private Sub FrmLogin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'PUNT1RDataSet.EMPLEADO' table. You can move, or remove it, as needed.
Me.EMPLEADOTableAdapter.Fill(Me.PUNT1RDataSet.EMPLEADO)

End Sub

Private Sub EMPLEADODataGridView_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
OK = False
Me.Close()
End Sub
End Class
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Consulta con Access

Publicado por alfredo juez (1 intervención) el 21/10/2013 12:00:28
Buenos días Juarez.

Supongo que el formulario de login lo abres desde el formulario principal, por lo que puedes definir las variables que quieras devolver a este formulario, como publicas dentro del mismo.

De esta forma, si en el formulario login defines la variable:

Dim Respuesta as string

Desde el punto donde llames el formulario de login puedes hacer:

Dim log as new frmLogin()
Me.Hide()
log.ShowDialog()
Me.Show()
if log.DialogResult = Windows.Forms.DialogResult.OK then
mirespuesta = log.Respuesta
end if


De esta manera obtienes tantas variables como tengas definidas de forma sencilla.

Otra manera que se me ocurre es con excepciones desde el hijo que capture el padre, donde se pasen los parametros con los valores que queremos mostrar en el padre.

Un aúltima opcion es que el formulario de log sea el primero en iniciarse, que es lo normal, y solo en caso de un log correcto, este lance el formulario del menu, en este caso solo tienes que definir en dicho formulario un nuevo constructor que reciba los parametros que necesites, por ejemplo, en el formulario padre debes poner:

Public Sub New(ByVal par1 As String, ByVal par2 As String, ByVal par3 As String)
InitializeComponent()
End Sub


Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Consulta con Access

Publicado por juarez (7 intervenciones) el 30/10/2013 16:35:42
Gracias fue de gran ayuda
Aplique lo de las variables publicas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar