Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [vb6] errore query?

  1. #1

    [vb6] errore query?

    Devo applicare questa query dinamica a secondo del valore selezionato del combobox ma mi restituisce l'errore:

    Errore di sintassi Operatore mancante

    codice:
    Private Sub Command1_Click()
       
       Dim Eli As String
       
       If cmbSeleziona.Text = "" Then ' VERIFICO CHE SIA SELEZIONATO UN RECORD REALE, NON VUOTO
            lblMessaggio.Caption = "Selezionare un Utente valido"
        Else
            lblMessaggio.Caption = ""
    
            Eli = cmbSeleziona.Text
            
            Set cn = New ADODB.Connection
            Set rs = New ADODB.Recordset
    
            ' APRO LA CONNESSIONE E LANCIO LA QUERY PER RECUPERARE IL RECORD SELEZIONATO
            cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\elipiazzola\Elisup.mdb"
            rs.Open "SELECT * FROM T_AnElisup WHERE nome like " & Eli, cn, 3
    
            ' RIEMPIO I CAMPI DELLA FORM CON I VALORI ESTRATTI DAL DATABASE
            txtNome.Text = rs("nome").Value
    
            rs.Close
            cn.Close
        End If
    
    End Sub

  2. #2
    Hai fatto un casotto!
    Io faccio in questo modo, molto + semplice, credo

    codice:
    Dim Eli As String
    const provider as string = "Mettici i dati di connessione, fatteli generare da un adodc"
       
       If cmbSeleziona.Text = "" Then ' VERIFICO CHE SIA SELEZIONATO UN RECORD REALE, NON VUOTO
            lblMessaggio.Caption = "Selezionare un Utente valido"
        Else
            lblMessaggio.Caption = ""
    
            Eli = cmbSeleziona.Text
            
            Set cn = New ADODB.Connection
            Set rs = New ADODB.Recordset
    
                     cn.open provider
                     rs.open "tabella",cs,3,3
           set rs = cn.execute("SELECT * FROM T_AnElisup WHERE nome LIKE '" & eli & "%'")
    
    txtNome.Text = rs.fields("nome").Value
    E dovrebbe funzionare

  3. #3
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Il valore che passi alla query deve essere racchiuso tra apici, in
    quanto trattasi di stringa.
    Poi l'operatore LIKE, di solito, viene utilizzato per richerche di
    'similitudini' per cui devi decidere quale similitudine impostare :

    1) Comincia per ....
    2) Contiene .....
    3) Finisce per ....

    Mentre ti sto rispondendo, XVincentX, ti ha postato un esempio
    che ti risolve il problema.
    Nel suo esempio la similitudine è la 1) Comincia per ...

    Le altre soluzioni sarebbero :
    codice:
    '2) Contiene ...
    set rs = cn.execute("SELECT * FROM T_AnElisup WHERE nome LIKE '%" & eli & "%'"
    
    '3) Finisce per  ...
    set rs = cn.execute("SELECT * FROM T_AnElisup WHERE nome LIKE '%" & eli & "'"
    Ciao,
    Ciao, Brainjar

  4. #4
    Ok perfetto capito, infatti funziona ma nel mio caso visto le vostre spiegazioni dovrei fare in modo che il valore sia esattamente uguale e non una similitudine ma inserendo al posto di "like" "=" non funziona più!

    ??

  5. #5
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Nel caso di ' = ' devi mantenere gli apici ma eliminare i caratteri
    % dalla query.

    Ciao,
    Ciao, Brainjar

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 © 2025 vBulletin Solutions, Inc. All rights reserved.