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 08 de Marzo 2016, 14:50
-
os muestro mi codigo, me da el error este
No se controló System.Data.OleDb.OleDbException
ErrorCode=-2147217900
Message="Error de sintaxis (falta operador) en la expresión de consulta 'c_dni = 14255278Q'."
Source="Microsoft JET Database Engine"
StackTrace:...
Y la verdad que estoy empezando y me estoy volviendo loco loco. El código es el siguiente:
Dim adaptador As New OleDb.OleDbDataAdapter
Dim registro As New DataSet
Public conex As New OleDb.OleDbConnection("provider = microsoft.jet.oledb.4.0;data source= " + My.Application.Info.DirectoryPath + "\socios.mdb")
' Por medio de este objeto voy a enviar todos los comandos de SQL a la tabla por medio de la conexión
Public comm As New OleDb.OleDbCommand
' Declaro una variable para armar la instrucción SQL
Dim sql As String
' declaro una variable para el calculo de la edad
Dim fechaSeleccionada As Date, edad As String
REM CARGAR BASES DE DATOS CODIGOS POSTALES Y GIMNASIOS
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 Integral Aikido")
End
Else
MsgBox(Err.Description, MsgBoxStyle.Exclamation, "Gestion Integral Aikido")
End If
End Try
Me.CENTROSTableAdapter.Fill(Me.CENTROS_ENTRDataSet.CENTROS)
Me.Codigos_postalesTableAdapter.Fill(Me.CPDataSet.codigos_postales)
REM llamada funcion de limpiar cajas de texto
limpia_cajas()
el problema me lo da en esta funcion
Private Sub BUSCAR()
Dim consulta As String
Dim lista As Byte
If t_dni.Text <> "" Then
consulta = "SELECT * FROM miembros_club WHERE c_dni = " & t_dni.Text & ""
adaptador = New OleDb.OleDbDataAdapter(consulta, conex)
registro = New DataSet
adaptador.Fill(registro, "miembros_club") --------- aqui concretamente
lista = registro.Tables("miembros_club").Rows.Count
End If
If lista <> 0 Then
'Cargar los datos encontrados donde corresponda
t_dni.Text = registro.Tables("MIEMBROS_CLUB").Rows(0).Item("C_DNI")
t_nombre.Text = registro.Tables("MIEMBROS_CLUB").Rows(0).Item("C_nombre")
t_apellidos.Text = registro.Tables("MIEMBROS_CLUB").Rows(0).Item("C_apellido")
End If
End Sub
A ver si me podeis ayudar por favor
Gracias de antemano
-
Hola! Es conveniente poner títulos adecuados a los temas, puedes consultar este hilo https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0 donde se explica cómo hacerlo
También en ese hilo se explica cómo pegar el código para que se visualice correctamente
Todo esto es importante para que se pueda saber de qué trata el tema, copiar y pegar el código, etc.
El error parece que lo tienes en este fragmento:
If t_dni.Text <> "" Then
consulta = "SELECT * FROM miembros_club WHERE c_dni = " & t_dni.Text & ""
adaptador = New OleDb.OleDbDataAdapter(consulta, conex)
registro = New DataSet
adaptador.Fill(registro, "miembros_club") --------- aqui concretamente
lista = registro.Tables("miembros_club").Rows.Count
End If
Por el mensaje de error parece que hubiera algún error en la sintaxis.
Prueba a poner un mensaje de depuración para comprobar si la consulta es correcta, por ejemplo:
If t_dni.Text <> "" Then
consulta = "SELECT * FROM miembros_club WHERE c_dni = " & t_dni.Text & ""
adaptador = New OleDb.OleDbDataAdapter(consulta, conex)
msgBox ("La consulta definida es la siguiente: " & consulta
End If
En base a lo que observes quizás encuentres que la consulta a la base de datos no está bien definida y quizás eso te ayude a solucionar el error
Saludos!