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

Discussione: report access query e parametri

  1. #1
    stevecor65 non è in linea Novello
    Post
    17

    report access query e parametri

    Salve a tutti,
    sto sviluppando una applicazione con diverse tabelle esterne da as400 (DB2) ed alcune tabelle locali con l'obbiettivo di automatizzare controlli.
    Vengo al punto: nella prima fase ho costruito le query con il builder integrato in access ed inseriti i parametri di filtro nel query builder e creato i relativi report e tutto pareva funzionare.
    Ora, giunto in una fase più avanzata, ho pensato di creare una form di raccolta dei dati filtro ( un codice tipo stringa e due date ) e tolto i parametri filtro dalle query pensando di passarli nella parte WHERE del comando docmd openreport e qui sono iniziati i problemi.
    Ciò che con i parametri funzionava bene dal query builder con il processo descritto via form da risultati errati o incongruenti.
    A questo punto chiedo a Voi se ci sono riferimenti informativi per cercare di recuperare la funzionalità originale
    PS
    Mi scuso se non mi sono presentato ma non ho colto ove fare la presentazione
    Stefano

  2. #2
    Phil_cattivocarattere non è in linea Scribacchino
    Luogo
    Verona-Mantova
    Post
    1,731
    Quote Originariamente inviato da stevecor65 Visualizza il messaggio
    ...con il processo descritto via form da risultati errati o incongruenti....
    Mostra il codice di questa parte, così ragioniamo su qualcosa.
    Per queste stampe sono coinvolte anche tabelle collegate su AS400? (lacrimuccia di nostalgia, il primo server non si scorda mai)

  3. #3
    stevecor65 non è in linea Novello
    Post
    17
    Si certo,
    alleghero a breve: stringhe SQL generate dal query generator di access. Codice da mè inserito nel form
    le 3 query mettono in relazione tabella As con le bolle del fornitore per controllo automatico
    codice:
    SELECT importbolle.numbolla, ord_forn.CODFORNIT, ord_forn.RAGSOCFOR, ord_forn.DATABOLFOR, ord_forn.NUMBOLFOR, [QTAUMORD]-[peso] AS Espr1, ord_forn.FASERIGAA, ord_forn.FASERIGAP, ord_forn.ARTICOLO, ord_forn.DESARTIC, ord_forn.QTAUMORD, importbolle.databolla, importbolle.fornitore, importbolle.peso, importbolle.vettore, importbolle.targa
    FROM ord_forn INNER JOIN importbolle ON (importbolle.databolla = ord_forn.DATABOLFOR) AND (importbolle.numbolla = ord_forn.NUMBOLFOR) AND (ord_forn.[CODFORNIT] = importbolle.[fornitore]);
    codice:
    SELECT ord_forn.CODFORNIT, ord_forn.RAGSOCFOR, ord_forn.DATABOLFOR, ord_forn.NUMBOLFOR, ord_forn.DESARTIC, ord_forn.QTAUMORD, importbolle.databolla, importbolle.numbolla
    FROM ord_forn LEFT JOIN importbolle ON (ord_forn.DATABOLFOR = importbolle.databolla) AND (ord_forn.[NUMBOLFOR] = importbolle.[numbolla]);
    codice:
    SELECT importbolle.numbolla, importbolle.databolla, importbolle.fornitore, importbolle.peso, importbolle.vettore, importbolle.targa, ord_forn_qry_dat__inizio.DATABOLFOR
    FROM importbolle LEFT JOIN ord_forn_qry_dat__inizio ON (importbolle.[databolla] = ord_forn_qry_dat__inizio.[DATABOLFOR]) AND (importbolle.[numbolla] = ord_forn_qry_dat__inizio.[NUMBOLFOR])
    WHERE (((importbolle.databolla)>=[#data di inizio analisi#]) AND ((importbolle.fornitore)=["inserire codice fonritore"]) AND ((ord_forn_qry_dat__inizio.DATABOLFOR) Is Null) AND ((ord_forn_qry_dat__inizio.NUMBOLFOR) Is Null));
    Ultima modifica di @Alex; 08-09-2020 10:45 

  4. #4
    stevecor65 non è in linea Novello
    Post
    17
    allego qui codice della sub
    come vedete ci sono diverse righe commentate perchè veramente ho fatto mile prove.
    mettendo e togliendo gli apici ' nella stringa. Mettendo e togliendo # nella stringa della data....
    rimetto i parametri nella query e tutto funziona....

    codice:
    dim StrCodForn1 As String
    Dim strDatainizio As String
    Dim strDataFin As String
    
    
    strCodForn = Trim(Me.strCodForn)
    strDatainizio = Str(Me.strDatIn)
    strDataFin = Str(Me.strDatFin)
    
    
    
    'DoCmd.OpenReport "controllo entrate argille", acViewPreview, "ord_forn Querybol_cons_entrambi", "[CODFORNIT] like " + "'*" + strCodForn + "*'" + " AND [DATABOLFOR] between " + strDatain + " AND  " + strDataFin, acWindowNormal
    'DoCmd.OpenReport "controllo entrate argille", acViewPreview, "ord_forn Querybol_cons_entrambi", "CODFORNIT like " + "'*" + strCodForn + "*'" + " AND DATABOLFOR between '#" + strDatain + "#' AND  '#" + strDataFin + "#'", acWindowNormal
    
    DoCmd.OpenReport "controllo entrate argille", acViewPreview, "ord_forn Querybol_cons_entrambi", "importbolle.fornitore = '" & strCodForn & "' AND ord_forn.DATABOLFOR >= #" & CDate(strDatainizio) & "#" & " AND ord_forn.DATABOLFOR <= #" & CDate(strDataFin) & "#", acWindowNormal
    
    DoCmd.OpenReport "ord_forn senza corrispondenza con  importbolle", acViewPreview, "ord_forn senza corrispondenza con  importbolle", "CODFORNIT ='" & CStr(strCodForn) & "' AND DATABOLFOR >= #" & CDate(strDatainizio) & "#" & " AND DATABOLFOR <= #" & CDate(strDataFin) & "#", acWindowNormal

  5. #5
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,512
    Se non metti i TAG per il codice, chiudiamo il 3D.
    Per ora ti ho corretto io tutto, guarda la modifica ed impara ad usarla.
    @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.

  6. #6
    stevecor65 non è in linea Novello
    Post
    17
    Scusate vedro di essere più preciso nei prossimi

  7. #7
    Phil_cattivocarattere non è in linea Scribacchino
    Luogo
    Verona-Mantova
    Post
    1,731
    Quote Originariamente inviato da stevecor65 Visualizza il messaggio
    codice:
    SELECT ... FROM ...
    WHERE (((importbolle.databolla)>=[#data di inizio analisi#]) AND ...;
    [#data di inizio analisi#] è un'informazione da indicare in una finestra che si apre quando si esegue la query? Se la risposta è Sì, bisognava inserire anche i cancelletti?
    Poi vediamo come rendere il codice "debuggabile"

  8. #8
    stevecor65 non è in linea Novello
    Post
    17
    Quote Originariamente inviato da Phil_cattivocarattere Visualizza il messaggio
    [#data di inizio analisi#] è un'informazione da indicare in una finestra che si apre quando si esegue la query? Se la risposta è Sì, bisognava inserire anche i cancelletti?
    Poi vediamo come rendere il codice "debuggabile"
    No la mia idea era quella di prelevare il dato dalla form che avevo creato apposta ma, visto che non funzionava, ho provato di tutto come dicevo. Inserendo canecelletto sulle date, apici sul codice fornitore, inserendo o meno la notazione nometabella.nomecampo oppure [nometabella].nomecampo veramente ho spulciato manuali e siti per un pomeriggio intero. Niente da fare.
    PS
    Se lascio il parametro nel generatore di query qualcuno sà dirmi con che costrutto posso passare i parametri prima della apertura del report alla query in modo che non me li chieda al runtime? Avrei tre report basati sugli stessi parametri e volevo lanciarli in sequenza ( come credo si capisca dal codice )

  9. #9
    stevecor65 non è in linea Novello
    Post
    17
    per capire ... il tag codice è #?

  10. #10
    Phil_cattivocarattere non è in linea Scribacchino
    Luogo
    Verona-Mantova
    Post
    1,731
    Quote Originariamente inviato da stevecor65 Visualizza il messaggio
    per capire ... il tag codice è #?
    Se intendi il simbolino nelle barre qui su masterdrive nella finestra in cui scrivi il messaggio, sì è quello.
    Lo puoi anche scrivere a mano, direttamente da tastiera
    [ CODE ]il tuo codice [ /CODE ] senza lo spazio nelle parentesi quadrate (io l'ho aggiunto per esigenze di visualizzazione)
    e si visualizza così
    codice:
    il tuo codice
    Se provi a quotare questo mio messaggio dovresti anche vedere come ho formattato il testo

+ 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