Programación General > Visual Basic 6.0 e inferiores

 Problema Con El Buscador Que He Creado

(1/1)

sr.dav:
Hola a todos!!!

Soy un poco novato en esto del visual y estoy realizando una aplicancion con bases de datos, en la cual realizo un buscador dentro de una tabla. Pero no consigo q me busque nada ya q cuando le doy a buscar me sale el siguiente error "-2147217913 No coinciden los tipos de datos en la expresion de criterios" pero no tengo ni idea donde esta el error y eso q revisao el programa mil veces, lo estado haciendo desde el f8 pero me quedado clavado, no lo consigo ver.

Haber si alguien me puedo ayudar porque yo soy incapaz de verlo, para hacerlo mas facil dejo el codigo aqui para q se entienda un poco la aplicacion:


--- Código: Text --- Public ssql As StringPublic mysql As StringPublic myrcs As RecordsetPublic cnn As ConnectionPublic rcs As RecordsetPublic datos As String Dim i As IntegerDim j As IntegerDim tablatype() As StringDim tablaname() As String Private Sub Command1_Click()    CommonDialog1.CancelError = True    On Local Error GoTo errhandler    CommonDialog1.Flags = cdOFNHideReadOnly    CommonDialog1.DialogTitle = "Escoge la base de datos que quieres utilizar"    CommonDialog1.Filter = "Archivos de Microsoft Access" & "(*.mdb)|*.mdb|"    CommonDialog1.FilterIndex = 2    CommonDialog1.ShowOpen    datos = CommonDialog1.FileName    Text1 = Empty    abrir    i = Empty    Grid.Clear    cbotabla.Clear    cbocampo.Clear    cbotabla.SetFocus    Set vertabla = cnn.OpenSchema(adSchemaTables)    ReDim Preserve tablaname(0)    ReDim Preserve tablatype(0)    Do While Not vertabla.EOF        If vertabla!TABLE_TYPE = "TABLE" Then            tablaname(i) = vertabla!TABLE_NAME            i = i + 1            ReDim Preserve tablaname(i)        End If        vertabla.MoveNext    Loop    For j = 0 To i - 1        cbotabla.AddItem tablaname(j)    Next j    cnn.Close    Exit Suberrhandler:    MsgBox Err.Number & Err.Description    Exit SubEnd SubPrivate Sub Command2_Click()    Unload MeEnd SubPrivate Sub Command3_Click()    buscaEnd SubSub busca()    On Local Error GoTo tu    Grid.Clear    Grid.Cols = 1    Grid.Rows = 1    abrir    ssql = "select * from " & cbotabla.Text    If Trim(cbocampo.Text) <> "" And Trim(Text1.Text) <> "" Then        ssql = ssql & " where " & cbocampo.Text & " = '" & Text1.Text & "'"    End If    Set rcs = New Recordset    rcs.Open ssql, cnn    If rcs.BOF Then Exit Sub    rcs.MoveFirst    With Grid        .Clear        .Cols = cbocampo.ListCount + 1        For p = 0 To cbocampo.ListCount - 1            .Row = 0            .Col = p + 1            .Text = rcs.Fields(p).Name        Next p        r = 1        Do While Not rcs.EOF        .Rows = r + 1        .Row = r            For p = 0 To cbocampo.ListCount - 1                .Col = p                If IsNull(rcs(rcs.Fields(p).Name)) Then                    .Text = "nulo"                Else                    .Text = rcs(rcs.Fields(p).Name)                End If            Next p            r = r + 1            rcs.MoveNext        Loop    End With    Set rcs = Nothing    Exit Subtu:    MsgBox Err.Number & Err.Description    Exit SubEnd SubPrivate Sub cbocampo_GotFocus()    On Local Error GoTo gg    cbocampo.Clear    mysql = "select * from " & cbotabla.Text    abrir    Set myrcs = New Recordset    myrcs.Open mysql, cnn    For m = 0 To myrcs.Fields.Count - 1        cbocampo.AddItem myrcs.Fields(m).Name    Next m    myrcs.Close    Exit Subgg:    MsgBox Err.Number & Err.Description    myrcs.Close    Exit SubEnd SubPublic Function abrir()    On Local Error Resume Next    cnn.Close: Set cnn = Nothing    Set cnn = New Connection    On Local Error GoTo licen    cnn.Open ("provider = microsoft.jet.oledb.4.0;data source=" & datos)    Exit Functionlicen:    MsgBox Err.Number & Err.Description    Exit FunctionEnd FunctionPrivate Sub Form_Unload(Cancel As Integer)    On Local Error Resume Next    cnn.Close: Set cnn = Nothing    rcs.Close: Set rcs = Nothing    myrcs.Close: Set myrcs = NothingEnd Sub  
Gracias de antemano

Abhero:
Que tipo de datos estas usando?

Cuando se buscan valores numericos comparados con un textbox hay que usar Val(nombretextbox) esa "puede ser" una de las causas por las cuales no te resulta.

tambien seria bueno que miraras exactamente en que linea de codigo se detiene el programa y asi es mas facil identificar el problema.


Recuerdos,
Ab.  :hola:

sr.dav:
ya he conseguido ver el error se tenian q quiatar las comillas, ya q estoy buscando un numerico, tiene q quedar asi:


--- Código: Text --- ssql = ssql & " where " & cbocampo.Text & " = " & Text1.Text & ""  
gracias por la ayuda!!!

saludos!!!

Sagutxo:
ups.

Navegación

[0] Índice de Mensajes

Ir a la versión completa