Hola, un saludo, he practicado un poco mas de visual basic y hasta ahora todo bien, excetpo en las bases de datos que no estoy familiarizado, asi que me decidi a hacer un proyecto muy simple para empezar a practicar mediante el control ADO y MS Access, Se trata de un programa que gestiona los episodios de la serie Los Simpson mediante temporadas agregar, las temporadas estan en tablas distintas en una base de datos, en total hasta ahorita van 4 tablas, pero son 17 las uqe voy a, llevo casi un mes en ello, y planeo terminarlo en un par de meses mas, pero estoy atorado en una parte, y no quisiera quitar esa opcion ya que se me hace importante para practicar y quisiera aprender. Miren el dilema es el sig:
Al empezar el programa empieza un formulario MDI, el cual a traves de un menu manda llamar a un formulario MDI-Child con la temporada seleccionada, cada temporada es el mismo formulario solo cambio la tabla en el recordsource por la temporada correspondiente, hasta ahi muy bien. El problema es en el formulario de altas.. al teclear el numero de episodio y darle clicl a un command Button, se debe buscar a traves de todas las tablas para ver si esta dado de alta el episodio y que lo muestre en pantalla y mande un msgbox diciendo que ya existe en la base de datos, y si no existe que se muestren los demas campos a rellenar para completar el registro, lo intente mediante la sentencia if sin exito, miren el codigo:
Private Sub cmdAceptar_Click()
On Error Resume Next
If txtAltasnum = "" Then
MsgBox "Debes introducir un numero de episodio", 128, "Error"
txtAltasnum.SetFocus
Else
If Val(txtAltasnum.Text) >= 1 And Val(txtAltasnum.Text) <= 13 Then
frmTemporada.temp1.RecordSource = "temporada1"
ElseIf Val(txtAltasnum.Text) >= 14 And Val(txtAltasnum.Text) <= 35 Then
frmTemporada.temp1.RecordSource = "temporada2"
ElseIf Val(txtAltasnum.Text) >= 36 And Val(txtAltasnum.Text) <= 59 Then
frmTemporada.temp1.RecordSource = "temporada3"
ElseIf Val(txtAltasnum.Text) >= 60 And Val(txtAltasnum.Text) <= 91 Then
frmTemporada.temp1.RecordSource = "temporada4"
End If
Dim ncap As Long
Dim sAdoBuscar As String
Dim vbookmark As Variant
ncap = Val(frmAltas.txtAltasnum.Text)
sAdoBuscar = "num_cap=" & ncap
frmTemporada.temp1.Recordset.Find sAdoBuscar, 1
vbookmark = frmTemporada.temp1.Recordset.Bookmark
If Err.Number Or frmTemporada.temp1.Recordset.BOF Or frmTemporada.temp1.Recordset.EOF Then
Err.Clear
Label2.Visible = True
Label3.Visible = True
Label4.Visible = True
txtAltasclacap.Visible = True
txtAltasclatemp.Visible = True
txtaltastemp.Visible = True
txtAltasclacap.SetFocus
Else
MsgBox "El episodio ya fue dado de alta, mas cuidado OK??"
frmTemporada.temp1.Recordset.Bookmark = vbookmark
frmTemporada.Hide
txtAltasnum.SetFocus
End If
End If
End Sub
espero entiendan lo que quiero hacer... si queda alguna duda puedo adjuntar todo el proyecto para que lo observen, y me ayuden con eso, ya que en realidad sera un logro importante terminar el proyecto. Gracias de antemano.
Un saludo
Robbie