URGENTE ! Buscar Una Celda especifica dentro de una Base de datos Acces
Publicado por Antonio (30 intervenciones) el 14/09/2014 14:01:49
Buenos dias, estoy haciendo una aplicación, que tiene que buscar en una base de datos.
Los campos de mis registros son Id, T1,T2,T3,T4,T5 Y T6 ( Los T_i estan cargados en un combobox para marcar cual quiero buscar)
Anteriormente, como solo tenia un Tiempo (T1), y la funcion funcionaba
El problema ahora es que al tener mas tiempos, por ej yo quiero buscar una celda cuya Id sea "3" y ver si su campo T3 (el cual marco con un combobox) esta vacio o esta lleno, para que, si esta vacio, yo pueda añadir o modificar un tiempo.
Sin embargo, con esta función, si existe una celda ya anteriormente con Id =3 , por Ej Id=3, T1=2, aunque el campo T3 de ese registro este vacio, me devuelve que ya existe ese registro, debido a que solo busco con el campo Id(Obvio), pero no se como hacer para que no me ocurra esto y realmente esta funcion me diga si el campo T3 (o el que sea), cuya Id sea recibida por un textboxID esta vacio o no...no se si me explico. MUCHAS GRACIAS DE ANTEMANO POR SU AYUDA.
Aqui les dejo la funcion en cuestion:
Function Buscar_Registro(ByVal xId As String) As Boolean
Dim Id As Integer
Id = Convert.ToInt32(xId)
Dim Conexion As New OleDb.OleDbConnection
Conexion.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Nino\Documents\Visual Studio 2013\Projects\Intento Tiempos3\TiemposBBDD3\Tiempos3.accdb;Persist Security Info =False"
Dim CadenaSql As String = "SELECT * FROM cronometraje WHERE Id=" & Id
Dim Adaptador As New OleDbDataAdapter(CadenaSql, Conexion)
Dim Ds As New DataSet
Conexion.Open()
Try
Adaptador.Fill(Ds)
Catch ex As Exception
MsgBox(ex.ToString)
End Try
Conexion.Close()
' VERIFICO REGISTRO :AHORA HAY QUE VER SI EL DATASET NOS TRAE ALGUN REGISTRO
If (Ds.Tables(0).Rows.Count = 0) Then
'MessageBox.Show("El registro no existe")
Return False
Else
Ds.Dispose() 'Destruimos el DataSet que hemos creado arriba para liberar memoria
Return True
End If
End Function
Los campos de mis registros son Id, T1,T2,T3,T4,T5 Y T6 ( Los T_i estan cargados en un combobox para marcar cual quiero buscar)
Anteriormente, como solo tenia un Tiempo (T1), y la funcion funcionaba
El problema ahora es que al tener mas tiempos, por ej yo quiero buscar una celda cuya Id sea "3" y ver si su campo T3 (el cual marco con un combobox) esta vacio o esta lleno, para que, si esta vacio, yo pueda añadir o modificar un tiempo.
Sin embargo, con esta función, si existe una celda ya anteriormente con Id =3 , por Ej Id=3, T1=2, aunque el campo T3 de ese registro este vacio, me devuelve que ya existe ese registro, debido a que solo busco con el campo Id(Obvio), pero no se como hacer para que no me ocurra esto y realmente esta funcion me diga si el campo T3 (o el que sea), cuya Id sea recibida por un textboxID esta vacio o no...no se si me explico. MUCHAS GRACIAS DE ANTEMANO POR SU AYUDA.
Aqui les dejo la funcion en cuestion:
Function Buscar_Registro(ByVal xId As String) As Boolean
Dim Id As Integer
Id = Convert.ToInt32(xId)
Dim Conexion As New OleDb.OleDbConnection
Conexion.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Nino\Documents\Visual Studio 2013\Projects\Intento Tiempos3\TiemposBBDD3\Tiempos3.accdb;Persist Security Info =False"
Dim CadenaSql As String = "SELECT * FROM cronometraje WHERE Id=" & Id
Dim Adaptador As New OleDbDataAdapter(CadenaSql, Conexion)
Dim Ds As New DataSet
Conexion.Open()
Try
Adaptador.Fill(Ds)
Catch ex As Exception
MsgBox(ex.ToString)
End Try
Conexion.Close()
' VERIFICO REGISTRO :AHORA HAY QUE VER SI EL DATASET NOS TRAE ALGUN REGISTRO
If (Ds.Tables(0).Rows.Count = 0) Then
'MessageBox.Show("El registro no existe")
Return False
Else
Ds.Dispose() 'Destruimos el DataSet que hemos creado arriba para liberar memoria
Return True
End If
End Function
Valora esta pregunta


0