Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [VB] problema ricerca

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929

    [VB] problema ricerca

    Ciao a tutti, continuo i miei studi, ma non riesco a capire perchè cosi non funziona

    codice:
    Private Sub cmbscelta_Click()
    
    
    Dim sqlstring As String
    
    sqlstring = "select * from Tipo where TIPO='" & cmbscelta & "'"
    
    Data.rstipo.find (sqlstring)
    
    If Not Data.rstipo.EOF Then
    Do While Not Data.rstipo.EOF
    
    CATEGORIA = (Data.rstipo.Fields("CATEGORIA"))
    
    Data.rstipo.MoveNext
    Loop
    Else
    MsgBox "Nessun record"
    
    End If
    
    End Sub
    o meglio non è che non funziona ma mi da sempre "Nussun Record"

    sto usando il Data Environment

    qualcuno sa aiutarmi?

    Grazie mille


  2. #2
    Utente di HTML.it L'avatar di serena
    Registrato dal
    Jul 2001
    Messaggi
    138
    ciao Rossella,
    credo che l'errore stia proprio nel comando .find

    con questa stringa
    sqlstring = "select * from Tipo where TIPO='" & cmbscelta & "'"

    devi aprire un recordset e non fare una ricerca
    quindi

    Data.rstipo.open sqlstring

    altrimenti apri prima il recordset poi usi find così:

    data.rstipo.find "tipo LIKE '"& cmbscelta & "'"

    almeno credo...

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    Complimenti ci hai preso in pieno!! :quipy:


    codice:
    Dim sqlstring As String
    sqlstring = "select * from Tipo where TIPO='" & cmbscelta & "'"
    Data.rstipo.Open sqlstring
    Data.rstipo.Find "tipo LIKE '" & cmbscelta & "'"
    If Not Data.rstipo.EOF Then
    Do While Not Data.rstipo.EOF
    CATEGORIA = (Data.rstipo.Fields("CATEGORIA"))
    Data.rstipo.MoveNext
    Loop
    Else
    MsgBox "Nessun record"
    End If
    Data.rstipo.Close
    Funziona

    Grazie mille


  4. #4
    Utente di HTML.it L'avatar di sebamix
    Registrato dal
    Aug 2000
    Messaggi
    1,028
    Originariamente inviato da Rossella_75
    Complimenti ci hai preso in pieno!! :quipy:


    codice:
    Dim sqlstring As String
    sqlstring = "select * from Tipo where TIPO='" & cmbscelta & "'"
    Data.rstipo.Open sqlstring
    Data.rstipo.Find "tipo LIKE '" & cmbscelta & "'"
    If Not Data.rstipo.EOF Then
    Do While Not Data.rstipo.EOF
    CATEGORIA = (Data.rstipo.Fields("CATEGORIA"))
    Data.rstipo.MoveNext
    Loop
    Else
    MsgBox "Nessun record"
    End If
    Data.rstipo.Close
    Funziona

    Grazie mille

    Scusa, ma perchè metti la condizione TIPO='x' nella stringa SQL
    e poi fai un find sempre su tipo con un LIKE??? Poi quel like IMHO è come se fosse "="...
    Non so se mi sono spiegato.

    sqlstring = "select * from Tipo where TIPO LIKE '" & cmbscelta & "'"
    e togli il find, dovresti ottenere lo stesso risultato.


  5. #5
    Utente di HTML.it L'avatar di serena
    Registrato dal
    Jul 2001
    Messaggi
    138
    però se apri il recordset con questa stringa :

    sqlstring = "select * from Tipo where TIPO='" & cmbscelta & "'"

    non importa fare anche la .find dopo, perchè lo specifichi in apertura con "WHERE TIPO = '" cmbscelta & "'"

    infatti ti dovrebbe aprire il recordset inserendo solo i record con tipo = cmbscelta....


  6. #6
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    ops..:adhone: fatto

    codice:
    Dim sqlstring As String
    sqlstring = "select * from Tipo where TIPO LIKE '" & cmbscelta & "'"
    Data.rstipo.Open sqlstring
    If Not Data.rstipo.EOF Then
    Do While Not Data.rstipo.EOF
    CATEGORIA = (Data.rstipo.Fields("CATEGORIA"))
    Data.rstipo.MoveNext
    Loop
    Else
    MsgBox "Nessun record"
    End If
    Data.rstipo.Close
    infatti funziona ugualmente


    grazie mille

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    un'ultima cosina ancora :gren:

    premetto che funziona perfettamente questo:
    codice:
        Data.rsanagrafico.Open
        While Not Data.rsanagrafico.EOF
        cmbcliente.AddItem (Data.rsanagrafico.Fields("ID")) & " - " & (Data.rsanagrafico.Fields("nome")) & " " & (Data.rsanagrafico.Fields("cognome"))
        Data.rsanagrafico.MoveNext
        Wend
        Data.rsanagrafico.Close
    solo una cosa io ho dei campi in cui il nome non c'è quindi mi stampa lo spazio vuoto, e vorrei fare in modo che se il nome non c'è allora al suo posto mi stampa il campo "agenzia".

    è possibile???


  8. #8
    Utente di HTML.it L'avatar di sebamix
    Registrato dal
    Aug 2000
    Messaggi
    1,028
    Al posto di Data.rsanagrafico.Fields("nome") prova a mettere:
    codice:
    iif("" & Data.rsanagrafico.Fields("nome")="",Data.rsanagrafico.Fields("agenzia"), Data.rsanagrafico.Fields("nome"))

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    Pensavo avessi sbagliato a scrivere "iif" e stupidamente l'ho corretto con "if" :gren:

    comunque era un'ora che mi impazzivo dietro a questa cosa e tu ci hai messo un'attimo :metallica

    non sapevo dell'esistenza di "iif" (prenderò informazioni)

    comunque funziona benissimo :metallica

    :quipy: :quipy:

    grazie mille


  10. #10
    Utente di HTML.it L'avatar di sebamix
    Registrato dal
    Aug 2000
    Messaggi
    1,028
    Considera che iIF ha 3 parametri:
    1^ : condizione
    2^ : cod. che viene eseguito nel caso la condizione sia vera
    3^ : cod. che viene eseguito nel caso la condizione sia falsa

    Considera che comunque esegue tutti e due i casi (stupidamente, IMHO).
    Se provi questo ti va in errore:

    iif(1=1,(1/1),(1/0))

    perchè esegue anche il (1/0) che naturalmente da un bel "divisione per 0". Quindi devi usare iif con le pinze.

    Anche se è molto comodo, a volte.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.