Programación General > Bases de Datos
Please Ayudenme
coriatj:
hola mi problema es:
tengo una base de datos y dos tablas en ella, kiero en visual basic poder preguntar una matricula de mi alumno y ke de una tabla kon esta matricula me mande unos datos y ke de la otra tabla me mande los otros datos... como es el codigo alguien puede ayudarme?
en la forma tengo:
TXTMATRICULA.Text
TXTNOMBRE.Text
TXTPATERNO.Text
TXTMATERNO.Text
TXTGRUPO.Text
**** estos los mando a llamar de una tabla
txtmes
txtmstatus
**** estos dos ultimos los mando a llamar de otra tabla
ambas tablas tienen el campo matricula con este campo es komo las kiero relacionar..
les mando este pedaso de codigo ke ya tengo y les adjunto el archivo de mi programa tambien... gracias
Private Sub CMDBUSCAR_Click()
If TXTBUSCAR.Text = "" Then
MsgBox "Escribe el codigo a buscar", vbInformation
Exit Sub
End If
With Data1
.Recordset.MoveFirst
For X = 0 To .Recordset.RecordCount - 1
If Data1.Recordset!MATRICULA & "" = TXTBUSCAR.Text Then
TXTMATRICULA.Text = .Recordset!MATRICULA & ""
TXTNOMBRE.Text = .Recordset!NOMBRE & ""
TXTPATERNO.Text = .Recordset!AP_PATERNO & ""
TXTMATERNO.Text = .Recordset!AP_MATERNO & ""
TXTGRUPO.Text = .Recordset!GRUPO & ""
End If
.Recordset.MoveNext
Next X
End With
End Sub
ArKaNtOs:
no he descargado el archivo que adjuntaste pero porque no haces un findfirst:
data1.recordsource = "mitabla"
data1.recordset.findfirst "Matricula='" & txtbuscar & "'"
if data1.recordset.nomatch then
msgbox "no se encontro resultado"
else
msgbox "hola :P"
end if
o si estas usando un dbgrid para mostrar la tabla por ejemplo puedes hacer un query con el evento change de tu textbox :P algo asi
data1.RecordSource = "SELECT * FROM mitabla WHERE Matricula LIKE '" & txtbuscar & "*'"
data1.refresh :P
espero haberte ayudado
F_Tanori:
--- Cita de: "coriatj" ---les mando este pedaso de codigo ke ya tengo y les adjunto el archivo de mi programa tambien... gracias
--- Fin de la cita ---
Adjuntaste el puro proyecto, pedazo es con Z y es que no ke etc.. :P
es sencillo mira tu base de datos debe de estar asi
Tabla: Alumnos
MATRICULA
NOMBRE
PATERNO
MATERNO
GRUPO
Tabla: Otros_Datos
MATRICULA
MES
STATUS
Debes de tener el campo de la matricula para poder relacionar...
entonces puedes buscar por SQL
--- Código: Text --- Option Explicit Private Sub Command1_Click()Dim ls_Matricula As String, ls_SQL As String ls_Matricula = Trim(txtBuscar) ls_SQL = "SELECT alumnos.matricula,alumnos.nombre,alumnos.paterno,alumnos.materno,alumnos.grupo,otros_datos.mes,otros_datos.status " ls_SQL = ls_SQL & "FROM Alumnos,Otros_Datos WHERE Alumnos.Matricula=Otros_Datos.Matricula and Alumnos.Matricula='" & ls_Matricula & "'" With Me.Data1 Set .Recordset = .Database.OpenRecordset(ls_SQL, dbOpenDynaset) 'Evitar que Falle el RecorCount :P '==================================== .Recordset.MoveLast .Recordset.MoveFirst '==================================== If .Recordset.RecordCount > 0 Then TXTMATRICULA.Text = .Recordset!MATRICULA TXTNOMBRE.Text = .Recordset!NOMBRE TXTPATERNO.Text = .Recordset!PATERNO TXTMATERNO.Text = .Recordset!MATERNO TXTGRUPO.Text = .Recordset!GRUPO Else MsgBox ("No matricula no encontrada") End If End WithEnd Sub
Suerte!
coriatj:
hola gracias a ambos por sus consejos y las correcciones a la ortografia...
F_Tanori me marca un error a la hora de querer implementar el codigo que me pasaste este es el error
run-time error '3061':
too few parameters. expected 5.
este es el error que me marca pudieras ayudarme nuevamente gracias
coriatj:
F_Tanori NO TE DIJE EN KE LINEA ME MARCA EL ERROR.... SORRY ES EN ESTA
Set .Recordset = .Database.OpenRecordset(ls_SQL, dbOpenDynaset)
GRACIAS
Navegación
[#] Página Siguiente
Ir a la versión completa