Autor Tema: Visual Basic y base datos Access comprobar existencia clave principal lostfocus  (Leído 3056 veces)

katsumoto

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 10
    • Ver Perfil
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:

Código: [Seleccionar]
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:

Código: [Seleccionar]
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
« Última modificación: 10 de Marzo 2016, 09:24 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
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!
Responsable de departamento de producción aprenderaprogramar.com

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".