+ Rispondi al Thread
Pagina 1 di 3 123 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: Query con clausola AND

  1. #1
    paoloet non è in linea Novello
    Post
    42

    Query con clausola AND

    Ciao ragazzi,

    sto impazzendo!!

    ho una query di cui vi riporto il codice sotto

    è abbastanza complessa ma riesco a farla funzionare


    codice:
    Set rs = db.OpenRecordset("SELECT Tabellamamvarianti.IDMAM, Tabellamamvarianti.idpz, Tabellamamvarianti.idvar, Tabellamamvarianti.genotipo, Tabellavarianti.Classe " & _
    "FROM Tabellavarianti INNER JOIN Tabellamamvarianti ON Tabellavarianti.[IDVARIANTE] = Tabellamamvarianti.[idvar]" & _
    "WHERE (Tabellamamvarianti.idpz)=" & paziente
    fin qui ripeto tutto ok!
    ho però la necessità di aggiungere un'altra clausola dopo il where, praticamente dopo "& paziente" e quindi utilizzo come operatore l'AND ma non funziona e non riesco a capire dov'è che sbaglio.

    vi riporto sotto uno dei tanti tentativi che ho testato

    codice:
    Set rs = db.OpenRecordset("SELECT Tabellamamvarianti.IDMAM, Tabellamamvarianti.idpz, Tabellamamvarianti.idvar, Tabellamamvarianti.genotipo, Tabellavarianti.Classe " & _
    "FROM Tabellavarianti INNER JOIN Tabellamamvarianti ON Tabellavarianti.[IDVARIANTE] = Tabellamamvarianti.[idvar]" & _
    "WHERE (Tabellamamvarianti.idpz)=" & paziente & "AND Tabellavarianti.Classe = 5")
    Ho provato a usare gli apici " ' " sul 5 o parentesi varie su Tabellavarianti.Classe ma NULLA!!!

    Avete qualche suggerimento?

    Grazie

  2. #2
    L'avatar di willy55
    willy55 non è in linea Scribacchino
    Post
    680
    La AND deve avere racchiusa fra spazi (in testa ed in coda) in modo che, nella interpretazione della sintassi SQL, possa comprendersi il comando (altrimenti risulta adiacente al testo).
    Willy

  3. #3
    paoloet non è in linea Novello
    Post
    42
    Grazie willy

    codice:
    "WHERE (Tabellamamvarianti.idpz)=" & paziente & " AND Tabellavarianti.Classe = 5")
    si scusami errore di battitura ma anche così non funziona

  4. #4
    L'avatar di willy55
    willy55 non è in linea Scribacchino
    Post
    680
    Esamina le parentesi (in base a quante aperte altrettante, in sequenza, devono essere chiuse)
    Willy

  5. #5
    paoloet non è in linea Novello
    Post
    42
    Ho rivisto tutto ma non credo ci siano parentesi mancanti

    ho pensato però che tutta l'intera clausola debba essere contenuta in un unica parentesi e ho provato così

    codice:
    "WHERE (Tabellamamvarianti.idpz =" & paziente & " AND Tabellavarianti.Classe=" & "5" & ")")
    ma anche in questo caso nullaaaa

  6. #6
    L'avatar di gibra
    gibra non è in linea Amanuense
    Luogo
    Breganze (VI)
    Post
    6,052
    Quote Originariamente inviato da paoloet Visualizza il messaggio
    Ho rivisto tutto ma non credo ci siano parentesi mancanti
    Invece @willy55 ha perfettamente ragione.
    Togli tutte le parentesi, non ti servono a nulla.

    Riguardo agli apici singoli non è possibile darti indicazioni perché l'uso o meno dipende dal tipo di campo, cosa che tu non hai indicato.

  7. #7
    paoloet non è in linea Novello
    Post
    42
    RAGAZZI HO RISOLTOOOOOO

    codice:
    "WHERE (Tabellamamvarianti.idpz =" & paziente & " AND Tabellavarianti.Classe= '5')")
    quindi rianalizzando il caso, gli errori teoricamente erano due:
    1) tutta la clausola deve essere racchiusa in parentesi
    2) il numero invece deve avere gli apici

    più tardi farò delle altre prove per verificare i due errori

    cmq grazie willi

  8. #8
    paoloet non è in linea Novello
    Post
    42
    gibra scusa ho visto la tua risposta ora

    il codice che ho scritto sopra funziona

    però ho ancora un po di confusione

    non capisco se è un errore di parentesi, di apici o entrambi

    dopo faccio delle prove per capire meglio

    cmq grazie a tutti

  9. #9
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    15,947
    Gli apici servono perché in realtà 5 non è un numero ma una stringa e questo perché il campo CLASSE è di tipo Testo.
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  10. #10
    paoloet non è in linea Novello
    Post
    42
    Confermo quanto detto da alex

+ Rispondi al Thread
Pagina 1 di 3 123 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi