Visualizzazione dei risultati da 1 a 7 su 7

Discussione: VB6 datagrid e query

  1. #1

    VB6 datagrid e query

    Ciao
    Io ho un datagrid che si popola grazie ad una query di questo tipo:

    SELECT * FROM CLIENTI where nome = '" & nome & "' and cognome = '" & cognome & "'


    cogome è una stringa rappresentata da cognome=cognome.text e nome da nome = nome.text

    Ora però io vorrei che quando effettuo la query se ad esempio nome è uguale a null o a "" , la query mi popoli la datagrid con tutti i record in cui è presente il cognome senza considerare i nomi.

    Non so se mi sono spiegato ma vorrei che se non metto niente nel campo nome lui consideri come qualunque cosa.

    Grazie a chiunque mi darà una mano

  2. #2
    Poui costrure la query controllando le caselle di testo.
    Es.

    Dim whereAnd As String: whereAnd = " Where "
    Dim strQuery As String

    strQuery = "SELECT * FROM CLIENTI "

    If(Trim(nome)<>"") Then
    strQuery = strQuery & whereAnd & " nome='" & nome & "' "
    whereAnd = " And "
    End If

    If(Trim(cognome)<>"") Then
    strQuery = strQuery & whereAnd & " cognome='" & cognome & "' "
    whereAnd = " And "
    End If

    dovrebbe andare :gren:

  3. #3
    Solo che io ho una serie abbastanza lunga di criteri di ricerca:
    Nome
    Cognome
    Città
    Età
    Sesso

    E quindi mi reterebbe una serie di if enorme giusto?

    Io avevo pensato ad una cosa (in asp si può ma qui non so)di questo tipo:

    Se nel campo cognome c'è scritto Pippo lui considera pippo+* cioè pippo più qualunque cosa.
    Di conseguenza se non scrivo niente lui lo considera come niente + qualunque cosa.
    Ma come si scrive in VB6?

  4. #4
    Sinceramente la successione degli if per:
    Città
    Età
    Sesso

    non dispiace...

    Non saprei aiutarti per la codifica da asp!

    Ciao!

  5. #5
    Pensavo appesantisse un pò la mia appz..

    Ma se dici che dovrebbe andare bene allora provo così

    Grazie mille

  6. #6
    ..niente..

    Ricordati di fare i Replace dell'apice ' sui campi, altrimenti se inserisci ad esempio nel campo cognome:
    d'ellapa

    di spezza la query.

  7. #7
    Ecco come ho risolto...


    SELECT * FROM CLIENTI where nome = '" & nome & "%' and cognome = '" & cognome & "%'

    in questo modo resta più leggero e mi sembra che funzioni molto bene...

    se io volessi però far iniziare la query ogni volta che cambio i dati all'interno del campo Nome o del campo Cognome come dovrei fare?

    Tramite l'evento on cange data o una cosa simile....ma come faccio?
    una volta aperto rs.open select.....
    se lo riapro cambiando nuovamente i dati mi dice che la connessione è già aperta!
    Come devo fare?
    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.