Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: katsumoto en 09 de Marzo 2016, 14:40
-
En primer lugar gracias por acogerme en este foro, estoy realizando una aplicacion en vb.net 2005 para la gestion de una Base de Datos Access, en el formulario de altas, al introducir el dni que es la clave principal quiero en el evento lostfocus que compruebe la existencia o no del dni, pero me da un error de sintaxis que no veo por ningun lado
Este es el código fuente:
Private Sub t_dni_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles t_dni.LostFocus
Dim consulta As String
Dim lista As Byte
If t_dni.Text <> "" Then
consulta = "SELECT * FROM miembros_club WHERE e-mail = " & t_dni.text & ""
adaptador = New OleDb.OleDbDataAdapter(consulta, conex)
registro = New DataSet
adaptador.Fill(registro, "miembros_club") AQUI ERROR Error de sintaxis (falta operador) en la expresión de consulta 'c_dni = 14255278Q'.
lista = registro.Tables("miembros_club").Rows.Count
End If
If lista <> 0 Then
t_nombre.Text = registro.Tables("miembros_club").Rows(0).Item("c_nombre")
t_apellidos.Text = registro.Tables("miembros_club").Rows(0).Item("c_apellidos")
t_direccion.Text = registro.Tables("miembros_club").Rows(0).Item("c_direccion")
End If
End Sub
La cadena de conexion con la base de datos es la siguiente:
Public Class altas
' Declaro e inicializo objeto para hacer la conexión a mi base de datos
Public conex As New OleDb.OleDbConnection("provider = microsoft.jet.oledb.4.0;data source= " + My.Application.Info.DirectoryPath + "\socios.mdb")
Public comm As New OleDb.OleDbCommand
Dim adaptador As New OleDb.OleDbDataAdapter
Dim registro As New DataSet
Dim sql As String
Dim fechaSeleccionada As Date, edad As String
Private Sub altas_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
' Trato de abrir la conexión
conex.Open()
' Inicializo el objeto Command
comm.Connection = conex
comm.CommandType = CommandType.Text
Catch ex As Exception
If Err.Number = 5 Then
MsgBox("No se pudo encontrar el archivo de la base de datos", MsgBoxStyle.Exclamation, "Gestion Bases de Datos")
End
Else
MsgBox(Err.Description, MsgBoxStyle.Exclamation, "Gestion Bases de Datos")
End If
End Try
End Sub
Por favor echarme una mano estoy desesperado llevo tres dia loco, y si no es pedir mucho me podiais orientar para que en el condicional If lista <> 0 Then compruebe que el campo logico c_baja si es false o no?? o en la misma instruccion Select * from
gracias de antemano a todos
-
Hola! Recuerda poner títulos adecuados a los temas y pegar el código según se explica en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0
Resulta extraño lo que tienes:
Un mensaje referido a c_dni, Error de sintaxis (falta operador) en la expresión de consulta 'c_dni = 14255278Q'
¿Por qué te sale esto cuando no estás usando c_dni en ningún momento?
Otra cosa extraña:
consulta = "SELECT * FROM miembros_club WHERE e-mail = " & t_dni.text & ""
¿Por qué haces un select con el criterio de que el e-mail sea igual al dni? No parece que tenga nada que ver el email con el dni...
Sobre la comprobación, ¿no puedes hacer algo como esto?
If registro.Tables("miembros_club").Rows(0).Item("c_baja")=False Then
...
End If
Saludos!