Programación General > Bases de Datos
Conexion Visual Basic-access Mediante Ado
robbie110487:
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:
--- Código: Text ---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 IfEnd 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
ElberGon:
Oye si me muestras con que haces tu conexion y que tipo de variable u objeto es temp1 claro que puedo ayudarte . . .
robbie110487:
Bueno, tal como comente talvez no me explique bien, como decia, la conexion es mediante ado, y temp1 es precisamente el control Adodc, aqui dejo el protecto completo para que quede mas claro, aun no consigo hacer lo que quiero :unsure:
salu2
ElberGon:
Cheque tu proyecto y si te falta mucho pero vas bien, tu problema ya lo solucione checalo si tienes dudas sigo en contacto con la discucion.segun yo y alo que entendi ya quedo tu problema pero checalo te adjunto el archivo:
Aunque dejame darte un consejo para ayudar a tu desarrollo en la Rama yo en lugar de haber creado tantas tablas yo hubiera echo un campo llamado temporada de tipo numerico entero corto y solo hubiera creado Una tabla lo que tu estas haciendo genera mas espacio en disco y redundancia; un buen programador debe de tratar redundar lo menos posible . . . .
ElberGon:
Aqui esta con las modificaciones que te dije que yo le hubiera hecho checalo puede ser que te sirve modifique la Base de Datos y un poco de Codigo checalo y comparalo usa lo que mas te agrade . . .
[email:3jbijfr4]elbertcastaneda@solectron.com[/email:3jbijfr4]
Navegación
[#] Página Siguiente
Ir a la versión completa