+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Errore di sintassi nella query

  1. #1
    sadim non è in linea Novello
    Post
    7

    Errore di sintassi nella query

    Salve a tutti,
    in un pulsante nell'evento su click ho inserito il codice di seguito, in modo tale che nella sottomaschera collegata ad una query mi faccia visualizzare solamente le colonne con "vero" nella colonna in materiale in riparazione, creerò successivamente altri pulsanti con altre verifiche vero/falso
    Ma continua a darmi errore nella riga Set rst = dbs.OpenRecordset(strSQL)
    probabilmente è la sintassi che non va ma non riesco a capire dove sbaglio, l'errore che mi restituisce è il 3075 errore di sintassi



    codice:
    Private Sub cmb_GiacenzaCGL_Click()
    Dim strSQL  As String
    Dim dbs As DAO.Database
    Dim rst As DAO.Recordset
    
    
    Set dbs = CurrentDb()
    
    strSQL = "SELECT [mag-Movimentazione TLC].Comune, [mag-Movimentazione TLC].Intestazione, [mag-Movimentazione TLC].DDT, [mag-Movimentazione TLC].[Data DDT], [mag-Movimentazione TLC].[Seriale TLC], [mag-Movimentazione TLC].[Nuovo Seriale], [mag-Movimentazione TLC].Quadro, [mag-Movimentazione TLC].Ubicazione, [mag-Movimentazione TLC].[Data Movimento], [mag-Movimentazione TLC].[Tipo Movimento], [mag-Movimentazione TLC].Carico, [mag-Movimentazione TLC].Scarico, [mag-Movimentazione TLC].[n° Documento], [mag-Movimentazione TLC].[Data Documento], [mag-Movimentazione TLC].[Documento Pronto], [mag-Movimentazione TLC].[Materiale in Riparazione], [mag-Movimentazione TLC].Consegnato, [mag-Movimentazione TLC].[Personale CGL], [mag-Movimentazione TLC].[Giacenza in Magazzino], [mag-Movimentazione TLC].allocato"
    strSQL = strSQL & "FROM [mag-Movimentazione TLC]"
    strSQL = strSQL & "WHERE ((([mag-Movimentazione TLC].[Materiale in Riparazione])=True))"
    
    Set rst = dbs.OpenRecordset(strSQL)
    
    Do While Not rst.EOF
        Debug.Print [Materiale in Riparazione]
    rst.MoveNext
    Loop
    
    rst.Close
    Set rst = Nothing
    dbs.Close
    Set db = Nothing
    End Sub
    Ultima modifica di AntonioG; 10-11-2019 08:18  Motivo: Titolo più significativo

  2. #2
    CarlettoFed non è in linea Scolaretto
    Post
    52

    Risposta

    Devi inserire uno spazio, prima delle " di chiusura, alla fine delle prime due righe di assegnazione valore alla variabile strSQL come segue:
    codice:
    strSQL = "SELECT [mag-Movimentazione TLC].Comune, [mag-Movimentazione TLC].Intestazione, [mag-Movimentazione TLC].DDT, [mag-Movimentazione TLC].[Data DDT], [mag-Movimentazione TLC].[Seriale TLC], [mag-Movimentazione TLC].[Nuovo Seriale], [mag-Movimentazione TLC].Quadro, [mag-Movimentazione TLC].Ubicazione, [mag-Movimentazione TLC].[Data Movimento], [mag-Movimentazione TLC].[Tipo Movimento], [mag-Movimentazione TLC].Carico, [mag-Movimentazione TLC].Scarico, [mag-Movimentazione TLC].[n° Documento], [mag-Movimentazione TLC].[Data Documento], [mag-Movimentazione TLC].[Documento Pronto], [mag-Movimentazione TLC].[Materiale in Riparazione], [mag-Movimentazione TLC].Consegnato, [mag-Movimentazione TLC].[Personale CGL], [mag-Movimentazione TLC].[Giacenza in Magazzino], [mag-Movimentazione TLC].allocato "
    strSQL = strSQL & "FROM [mag-Movimentazione TLC] "

  3. #3
    sadim non è in linea Novello
    Post
    7
    Ho provato, ma era una prova che avevo già fatto, e con gli spazi non dà alcun risultato, nel senso che non viene filtrata la sottomaschera in alcun modo.
    Probabilmente da neofita e prima volta che provo ad usare SQL collegato al VBA sicuramente sto sbagliando qualche passaggio.
    Nella query devo inserire qualcosa nei criteri?
    i passaggi che ho fatto sono:
    1) Creato una query dalla tabella
    2) inserito il criterio "Vero" nella colonna relativa al "materiale in magazzino"
    3) copiato il codice SQL
    4) cancellato il criterio
    5) copiato il codice SQL per come ho postato il codice nell'evento click di un pulsante

    con le varie discussioni che ho letto non sono stato in grado di capire quali sono i passaggi corretti, magari manca qualche passaggio che sconosco
    Ultima modifica di sadim; 10-11-2019 06:58 

  4. #4
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,472
    Blogs
    5
    Dovresti scrivere

    Debug.Print rst.Fields("[Materiale in Riparazione]")
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  5. #5
    sadim non è in linea Novello
    Post
    7
    Niente da fare, appena provato, ma non restituisce nessun risultato

  6. #6
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,472
    Blogs
    5
    Se togli tutta la WHERE hai dei risultati? Hai almeno uno dei campi a True?
    Ultima modifica di AntonioG; 10-11-2019 09:09 
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  7. #7
    sadim non è in linea Novello
    Post
    7
    se tolgo tutta la WHERE rimane la lista per come è,
    su 2004 campi ci sono 23 a True ed è il risultato voluto che venga filtrata la lista e rimangano i 23 campi
    la query per come ho scritto prima funziona se metto "VERO" nel criterio in corrispondenza della colonna Materiale in Riparazione.

  8. #8
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,472
    Blogs
    5
    Quote Originariamente inviato da sadim Visualizza il messaggio
    la query per come ho scritto prima funziona se metto "VERO" nel criterio in corrispondenza della colonna Materiale in Riparazione.
    Non capisco cosa scrivi.

    Senza WHERE dovrebbe visualizzare tutti i record. Se esistono alcuni record con il campo del criterio a True con la WHERE dovresti avere solo quei record. Non ci piove.

    Scrivi

    WHERE [mag-Movimentazione TLC].[Materiale in Riparazione]=-1
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

+ Rispondi al Thread

Permessi di invio

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