Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    244

    piccolo quesito in una combo

    ho una combo che carico allapertura di un form attraverso un timer

    al click della combo ho inserito il seguente codice

    If Combo1.Text <> "" Then
    Modifica = 1
    If Data1.Recordset.EOF <> True Or Data1.Recordset.BOF <> True Then
    Data1.Recordset.MoveFirst
    Do While Not Data1.Recordset.EOF
    If Combo1.Text = (Data1.Recordset("COGN DENOM SOC 1")) Then

    Exit Do
    End If
    Data1.Recordset.MoveNext
    Loop

    End If
    End If



    il problema e' che se inserisco 2 nomi uguali se clicco sul secondo mi trova sempre il primo potreste aiutarmi per favore grazie in anticipo

  2. #2
    Beh credo sia dovuto al fatto che esci dal ciclo appena trovi una corrispondenza. Imposta il ciclo in modo che ti trovi più di una corrispondenza, il che significa non uscire dal loop appena trovi la prima, ma continuare a cercare, il risultato finale è che sarai un pò più lento perchè ti devi smazzare tutto il database ma almeno hai tutti i risultati disponibili (se ovviamente inserisci all'interno del ciclo una memorizzazione dell'informazione trovata)
    Credo poi che con SQL si possa fare in modo più rapido ma non ho sottomano il codice se poi ti interessa posso sbattermi

    Salutoni

    PapaIndia

  3. #3
    mi sono sbattuto

    con SQL si può fare eccoti il codice

    Data1.DatabaseName = Percorso + "MydataBase.mdb" 'Individuo il database

    Data1.RecordSource = "MiaTabella" 'Individuo la tabella
    'eseguo una select con chiave di ricerca Combo2.text nel campo Combo1.text(Precedentemente carico con tutti i campi della mia tabella) e (mi pare) ordine Ascendente per campo Nome.

    Data1.RecordSource = ("SELECT * FROM Biglietti WHERE " + Combo1.Text + " like '" + Combo2.Text + "' ORDER BY Nome ASC;")

    In questo modo, se per esempio hai due corrispondenze, nel tuo oggetto data viene visto un database "virtuale" con solo i due record in cui ha trovato le corrispondenze.

    scusa l'intortamento di parole.... ma sai sono autodidatta, casinista e principiante

    Saluti PapaIndia

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    244

    nessuno conosce un metodo + semplice?

    nessuno conosce un metodo + semplice?

    pleasee

  5. #5
    Prova a farlo che non è difficile come sembra

    Tra l'altro c'è un errore in quello che ti ho mandato, ho scordato una modifica

    Data1.DatabaseName = "C:\Documenti\MydataBase.mdb" 'Individuo il database (Ovviamente cambia il percorso a tuo piacimento)

    Data1.RecordSource = "MiaTabella" 'Individuo la tabella Ovviamente la tabella che interessa a te

    'eseguo una select con chiave di ricerca nel campo Nome confrontandola con combo1.text. Il risultato è che il tuo oggetto data vedrà solo i record di cui avrà trovato corrispondenza.

    Data1.RecordSource = ("SELECT * FROM MiaTabella WHERE Nome like '" + Combo2.Text + "' ORDER BY Nome ASC;")

    Perchè possa tornare a vedere l'intero database occorrerà fare una Data1.RecordSource = ("SELECT *")

    Se hai dei dubbi chiedi pure ma non ti arrendere.

    salutoni PapaIndia

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.