Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Ricerca che soddisfi 2 campi all'interno di un DB
Forum - Visual Basic 6 - Ricerca che soddisfi 2 campi all'interno di un DB

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Sandro (Normal User)
Newbie


Messaggi: 10
Iscritto: 20/10/2018

Segnala al moderatore
Postato alle 10:19
Sabato, 20/10/2018
Buongiorno a tutti
non riesco a risolvere il problema di ricerca contemporaneamente all'interno di un database, cioè mi spiego
inserendo in una textbox: Giuseppe Verdi, ed in un'altra textbox: 1870,
all'interno della mia list box mi devono comparire tutti e solo gli indici dei campi che soddisfano entrambi le 2 textbox.
sono riuscito a scrivere il codice riferito alla ricerca in un solo campo:

Codice sorgente - presumibilmente VB.NET

  1. Public Function cerca_parola()
  2. Dim sql As String
  3.  
  4. If schermata_Musicisti.txt_musicista.Text = "autore" Then
  5.      sql = "SELECT * FROM Info WHERE autore LIKE '*" & Replace(schermata_ musicista.txt_cerca.Text, "'", "''") & "*'" & "ORDER BY id")
  6. End If
  7.  
  8. If schermata_Musicisti.txt_musicista.Text = "anno" Then
  9.      sql = "SELECT * FROM Info WHERE anno LIKE '*" & Replace(schermata_ musicista.txt_cerca.Text, "'", "''") & "*'" & "ORDER BY id")
  10. End If
  11.  
  12. Set rs = DB.OpenRecordset(sql)    
  13.      
  14. End If



PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6378
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:10
Sabato, 20/10/2018
Nella WHERE devi aggiungere la AND con l'altro campo e valore

Ovviamente devi ottenere una sola SELECT alla fine

Ultima modifica effettuata da nessuno il 20/10/2018 alle 13:34


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Sandro (Normal User)
Newbie


Messaggi: 10
Iscritto: 20/10/2018

Segnala al moderatore
Postato alle 9:02
Lunedì, 22/10/2018
Ho capito che la procedura è questa,
ma non so come impostarlo...

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6378
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 9:42
Lunedì, 22/10/2018
Sai concatenare le stringhe?

Si tratta di preparare la stringa che sta dopo la WHERE con una serie di if e di concatenazioni.

Avrai una stringa iniziale con "SELECT .... WHERE "

Poi, se il primo dato è indicato aggiungi alla stringa " <nomecampo1> LIKE <valore1> AND "
Se il secondo dato è indicato aggiungi alla stringa " <nomecampo2> LIKE <valore2> AND "

Alla fine elimina l'ultima AND dalla stringa e aggiungi la stringa " ORDER BY ..."

Si tratta di lavorare con le semplici funzioni stringa Right, Len ...


Una alternativa più corretta è usare i Parameters.

Ultima modifica effettuata da nessuno il 22/10/2018 alle 9:44


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Sandro (Normal User)
Newbie


Messaggi: 10
Iscritto: 20/10/2018

Segnala al moderatore
Postato alle 9:54
Lunedì, 22/10/2018
ci sto sbattendo la testa.... ma non riesco

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6378
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 10:01
Lunedì, 22/10/2018
Facci vedere i tuoi tentativi.

Stiamo parlando di concetti di base (trattamento delle stringhe), se programmi con i DB conoscerai le basi ...

Se avessi due stringhe, Cognome e Nome, come potresti ottenere il Nominativo completo in un'altra stringa?

Ultima modifica effettuata da nessuno il 22/10/2018 alle 10:02


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Sandro (Normal User)
Newbie


Messaggi: 10
Iscritto: 20/10/2018

Segnala al moderatore
Postato alle 10:15
Lunedì, 22/10/2018
Cioè, faccio la ricerca inserendo il nome dell’autore [cerca.txt] e vado a cercare nel campo nel campo autore il nome [cerca.txt] e nel campo anno[Anno_text]

Codice sorgente - presumibilmente VB.NET

  1. If schermata_Musicisti.txt_Anno.Text = "Anno" Then
  2.    sql = "SELECT * FROM Info WHERE autore LIKE AND anno '*" & Replace(schermata_ musicista.txt_cerca.Text, "'", "''") & "*'" & "ORDER BY id")
  3. End If
  4.  
  5. Set rs = DB.OpenRecordset(sql)    
  6. End If


PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6378
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 10:26
Lunedì, 22/10/2018
Prova a rileggere quello che ti ho scritto. Ti ho elencato i passi da seguire ma se non li leggi ...

Ti ho parlato di stringhe da concatenare e non vedo nessun tentativo nel tuo codice ... quindi non ci stai sbattendo la testa ma semplicemente attendi il codice pronto.

Ultima modifica effettuata da nessuno il 22/10/2018 alle 10:27


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Sandro (Normal User)
Newbie


Messaggi: 10
Iscritto: 20/10/2018

Segnala al moderatore
Postato alle 16:42
Lunedì, 22/10/2018
credo che il mio problema è un po' più complesso, mi spiego meglio:
ho 2 texbox: Autore ed Anno;
Inserendo il nome dell'autore e l'anno nelle rispettive textbox voglio che all'interno di una listbox mi si incolonnano tutti gli indici corrispondente a quel autore e a quell'anno corrispondente.

Ad es. se nel database mdb ho nei campi
Indice   Autore        Anno
1          Rossi          1998
2          Battisti       1978
3          Rossi          1991
4          Battisti       1978
5          Battisti       1975
etc.. etc..

inserendo nella textbox Autore: Battisti e nella textbox Anno: 1978
nella listbox deve incolonnarmi soltanto gli indici 2 e 4



PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo