Visualizzazione dei risultati da 1 a 5 su 5

Discussione: VB6 Istruzione Select

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    120

    VB6 Istruzione Select

    Allora..ho una listbox riempita con cognomi..devo fare una select in cui la condizione deve essere in base a una selezione multipla nella listbox..cioè non voglio fare una condizione con un solo cognome selezionato ma con 2 o più cognomi selezionati!
    Grazie

  2. #2
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    La ListBox settala con style = '1 - CheckBox', così ottieni in modo
    elegante la multiselezione.
    La query di selezione la costruisci in questo modo :
    codice:
    Dim sSQL As String
    Dim sWhere As String
    Dim a As Integer
    
    sSQL = "Select * from Tabella where"
    sWhere = ""
    For a = 0 To List1.ListCount - 1
    
        If List1.Selected(a) = True Then
            If IsEmpty(sWhere) Then
                sWhere = " Cognome = '" & List1.List(a) & "'"
            Else
                sWhere = " AND Cognome = '" & List1.List(a) & "'"
            End If
        End If
    Next a
    sSQL = sSQL & sWhere
    '
    ' In questo punto hai la stringa sSQL composta dinamicamente.
    '
    Ricorda solo che per gestire gli apostrofi presenti spesso nei
    cognomi tipo D'Amico, Dell'Acqua ecc. ) le istruzioni
    codice:
                .....  
                sWhere = " Cognome = '" & List1.List(a) & "'"
                ..... 
                sWhere = " AND Cognome = '" & List1.List(a) & "'"
    generano un errore a runtime.
    Un metodo efficace a prevenirlo è quello di utilizzare i doppi apici
    al posto dei singoli. La strada più immediata è :
    codice:
                .....  
                sWhere = " Cognome = " & Chr$(34) & List1.List(a) & Chr$(34)
                ..... 
                sWhere = " AND Cognome = " & Chr$(34) & List1.List(a) &  Chr$(34)
    Ciao,
    Ciao, Brainjar

  3. #3
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    [QUOTE]Originariamente inviato da Brainjar
    codice:
    Dim sSQL As String
    Dim sWhere As String
    Dim a As Integer
    
    sSQL = "Select * from Tabella where"
    sWhere = ""
    For a = 0 To List1.ListCount - 1
    
        If List1.Selected(a) = True Then
            If IsEmpty(sWhere) Then
                sWhere = " Cognome = '" & List1.List(a) & "'"
            Else
                sWhere = " AND Cognome = '" & List1.List(a) & "'"           
            End If
        End If
    Next a
    sSQL = sSQL & sWhere
    '
    ' In questo punto hai la stringa sSQL composta dinamicamente.
    '
    Ciao, ci sono alcuni piccoli errori (evidenziati in rosso), sicuramente dovuti a distrazione.. la versione corretta (con una piccola modifica):
    codice:
    Dim sSQL As String
    Dim sWhere As String
    Dim a As Integer
    
    sSQL = "Select * from Tabella where"
    sWhere = ""
    For a = 0 To List1.ListCount - 1
    
        If List1.Selected(a) = True Then
            If IsEmpty(sWhere) Then
                sWhere = " Cognome = '" & Replace(List1.List(a),"'","''") & "'"
            Else
                sWhere = sWhere & " OR Cognome = '" & Replace(List1.List(a),"'","''") & "'"
            End If
        End If
    Next a
    'meglio fare un controllo se sWhere  contiene qualcosa, altrimenti non devi eseguire la query...
    sSQL = sSQL & sWhere
    Jupy

  4. #4
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Grazie.
    Ciao,
    Ciao, Brainjar

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    120

    VB6 Istruzione Select

    Grazie!!!!!!!!!!!!!!!!

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.