DataList & Adodc

¡Hola! Xabi me alegro de conocerte. Soy bastante novato en esto, espero me puedas ayudar.
Tengo una Base de Datos un frmdatos para entrada de registros con sus TextBox cuando llamo al DataList frmListado y pico en el nombre seleccionado no me aparece el registro en los TextBox.
Este es el código que estoy utilizando lo he sacado de la Librería de Visual.
Todo lo demás funciona bien pero aquí estoy atascado.
Gracias xabi alfonso.
Private Sub DataList1_Click()
On Error GoTo Interrupcion
Dim strQuery As String
strQuery = "Select * FROM Datosmoprilab WHERE Materia Activa = " & _
DataList1.BoundText
With frmdatos.Adodc1
frmdatos.Adodc1.RecordSource = strQuery
frmdatos.Adodc1.Refresh
End With
With DataList1
DataList1.Refresh
End With
Exit Sub
Interrupcion:
MsgBox Err.Description
End Sub

1 respuesta

Respuesta
1
No me dices donde da el error,
Pero por el momento lo que yo veo es lo siguiente:
En la Query, un campo/tabla con más de una palabra debe ir entre corchetes [].
Si el campo es texto el parámetro entre ''
strQuery = "Select * FROM Datosmoprilab WHERE [Materia Activa] ='" & _
DataList1.BoundText & "'"
Si el campo es fecha el parametro entre ## y con formato MM/DD/YYYY
strQuery = "Select * FROM Datosmoprilab WHERE [Materia Activa] =#" & _
DataList1.BoundText & "#"
Si el campo es númerico estaria bien
strQuery = "Select * FROM Datosmoprilab WHERE [Materia Activa] =" & _
DataList1. BoundText
¡Que tal xabi!
No me da ningún error, el problema es que se me repiten todas las cajas con el mismo dato, el del campo de [Materia Activa].
He probado otros planteamientos, pero nada.
Hasta pronto Alfonso.
Private Sub DataList1_Click()
On Error GoTo Interrupcion
Dim strQuery As String
strQuery = "Select * FROM Datosmoprilab WHERE [Materia Activa] ='" & _
DataList1.BoundText & "'"
frmdatos.txtnombre(0).Text = DataList1.BoundText
strQuery = "Select * FROM Datosmoprilab WHERE [Formula] ='" & _
DataList1.BoundText & "'"
frmdatos.txtformula(1).Text = DataList1.BoundText
... etc
Dime si hay que porner Refresh y en donde.
¿Puedes situarme un poco mejor en el funcionamiento del formulario?
¿Tienes un DataList con que datos?
Varios textbox cada uno para uno de los campos de la tabla, ¿por qué txtnombre(0)? ¿Existe txtnombre(1)? ¿Para qué?
...
xabi ya tengo la solución. Perdona no haber sido más preciso.
Ha sido por casualidad consultando la MSDN Librey Visual..."Crear una cuadricula vinculada a un control DataList" en el punto 9 propiedad BoundColumn, estaba la respuesta.
En mi proyecto en propdes.del DataList en BoundColumn se establece a un segundo campo por ej.[Codigo] distinto del ListFields [Materia Activa], que es el txtnombre(0), en los demás txt tienen el mismo nombre que los campos,
Código, Fórmula, Estado.. etc
En mi aplicación muestro el DataList sobre el frmdatos (Entrada de Datos) y desde ahí selecciono el nombre Materia Activa, entrando en las cajas del frmdatos el registro completo.
El DataGrid solo lo he puesto para tener una visión general de todos los registros.
De todas formas ahí tienes un 10 pues lo de la Query no tenia ni pajotera...
Gracias xabi.
Private Sub DataList1_Click()
On Error GoTo Interrupcion
Dim strQuery As String
strQuery = "Select * FROM Datosmoprilab WHERE [Codigo] ='" & _
DataList1.BoundText & "'"
With frmdatos.Adodc1
frmdatos.Adodc1.RecordSource = strQuery
frmdatos.Adodc1.Refresh
End With
With DataList1
DataList1.Refresh
End With
Exit Sub
Interrupcion:
MsgBox Err.Description
End Sub
¡Ah! xabi tengo esta otra cosilla.
Pretendo que sea un rótulo intermitente que se me queda fijo, dice "Producto Caducado" bueno ¿cómo lo ves?
Private Sub Form_Load()
On Error GoTo Interrupcion
Label18.Caption = Date
Dim alarma As Boolean
Dim i As Integer
Timer2.Enabled = True
Timer2.Interval = 500
If txtfcaducidad(5) = Date Then
For i = 0 To 10
Beep
alarma = True
Label20(0).Visible = True
Label20(0).Visible = False
alarma = False
Label20(0).Visible = False
Label20(0).Visible = True
alarma = True
Next i
End If
Exit Sub
Interrupcion:
MsgBox Err.Description
End Sub
Perdona xabi, creo que tenia que haber terminado la anterior pregunta y habértela valorado antes de hacerte otra nueva, a si es que dime algo y la cerramos, y te la hago de nuevo. Novatadas de un inexperto.
Saludos Alfonso.
Xabi.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas