Settare valore condizionato textbox di un report

di il
21 risposte

21 Risposte - Pagina 2

  • Re: Settare valore condizionato textbox di un report

    OsvaldoLaviosa ha scritto:


    Sto provando a leggere-rileggere tutto, ma trovo che tu dalla tabella al report abbia fatto un passo più grosso della gamba saltando passaggi intermedi. Per questo motivo suggerisco di mettere in piedi una query "inequivocabile" su tutti i campi. Poi sul report scegli quali campi mostrare e su quali fare formattazioni. In quest'ultimo caso ci vedo utile solo la formattazione condizionale.

    Per darti una mano consistente però, (almeno da me) gradirei capirci meglio del tuo progetto. Lo so che forse vado fuori tema, ma se non ho una idea completa del tuo progetto, non ne vengo a capo. Pertanto ti chiedo:
    1- di cosa parla il tuo database
    2- nomi propri di tutte le tabelle che entrano in gioco
    3- nomi propri di tutti i campi delle tabelle con indicazione della chiave primaria
    4- le relazioni
    5- nome proprio della query, quali campi mostra e quali campi calcolati ha
    6- nome proprio del report
    7- fai un esempio esplicito e pratico per entrare meglio nel merito del tuo progetto
    Allora, ti chiedo scusa per essere stato approssimativo nell'esprimermi, ma contemporaneamente lavoro e non riesco ad essere preciso per mancanza di dimistichezza col software (non lo uso spesso ma lo so usare, giuro! ). In ordine sparso:
    1) Ho studiato i database all'università, so cos'è un database relazionale, l'importanza delle chiavi primarie, l'univocità dei dati, e dunque cos'è una tabella normalizzata. So programmare, discretamente, in SQL (forse ho perso un po' la mano). Ho presentato un progetto in Access all'Università per gestire una lega di fantacalcio (lo so, fa ridere). Il concetto è: non sono uno che non sa quello che fa. E non lo dico per boria, anzi sono sicuramente scarso nel campo ma non uno che brancola nel buio.
    2) Ho omesso alcuni particolari per svariati motivi, per primo il tempo, secondo per problematiche legate all'importazione dei dati: si tratta di centinaia di file messi malissimo e il software sarà provvisorio in attesa di uno programmato ad hoc per la nostra azienda. So per certo che quello che sto facendo è sufficiente per il tempo e per lo scopo prefisso.
    3) Pecco in linguaggio di programmazione, VBA nello specifico, perchè non sono un informatico, bensì un ingegnere (non informatico ).
    4) Il database gestirà una lista di pulizie che gli operai devono effettuare con diverse frequenze, ogni pulizia è caratterizzata dal nome della macchina, del componente macchina, dal numero del reparto, della cella produttiva, dalla procedura, dagli attrezzi, dalla frequenza con cui viene effettuata, dai giorni in cui viene effettuata (ad es. 1 volta al mese, il lunedi; un'altra, 1 volta al mese il giovedì), dal turno in cui viene effettuato eccetera. So per certo che hai intuito che questi sono tutti campi della tabella principale a cui sono collegate con relazioni 1 a molti le varie tabelle con le liste univoche delle varie cose citate (celle, attrezzi, frequenza, reparti, macchine, componenti) etc.
    Grazie a queste relazioni ho messo in piedi alcune semplici query SELECT-FROM-WHERE (con dei RIGHT JOIN in qualche caso) e la condizione della ricerca viene impostata attraverso delle maschere con ComboBox con cui l'utente seleziona la cella a cui è interessato piuttosto che la macchina.
    Ho dovuto creare dei report relativi a queste query per associarci delle celle vuote che, una volta stampati, gli operatori devono riempire con delle X per dimostrare di aver pulito: uno seleziona ad es. la cella e si stampa tutte le pulizie relative, dopodichè da la checklist agli operatori.
    CHECKLIST = RECORD ESTRATTO DALLA QUERY + 21 TEXT BOX VUOTE COLORATE (tutto su un'unica riga).
    Spero ora sia tutto più chiaro.
    Ora: queste caselle vuote, che si riferiscono a 3 turni, ogni giorno, ogni settimana, su un pattern di 16 settimane, (3*7*16) devono colorarsi in base ai valori impostati nei campi Freq, Giorno, Settimana e Turno (con quale frequenza, in quale giorno, in quale turno e in quale settimana viene effettuato la pulizia), la frequenza può essere per turno, per giorno, 1/settimana, 1/2 sett, etc.
    Ho risolto la questione impostando la formattazione condizionale su ogni singola textbox (un lavoraccio meccanico inelegante ma dato i tempi stretti efficace e obbligato).
    Voglio ora trasformare tutto questo in VBA.
    Spero di essere stato chiaro questa volta, capisco che non è facile senza averlo sotto. Ti ringrazio per la pazienza ancora e l'aiuto che mi fornisci, spero di non averti steso con questo poema omerico.
  • Re: Settare valore condizionato textbox di un report

    Baley ha scritto:


    Ogni pulizia è caratterizzata dal nome della macchina, del componente macchina, dal numero del reparto, della cella produttiva, dalla procedura, dagli attrezzi, dalla frequenza con cui viene effettuata, dai giorni in cui viene effettuata (ad es. 1 volta al mese, il lunedi; un'altra, 1 volta al mese il giovedì), dal turno in cui viene effettuato eccetera. So per certo che hai intuito che questi sono tutti campi della tabella principale a cui sono collegate con relazioni 1 a molti le varie tabelle con le liste univoche delle varie cose citate (celle, attrezzi, frequenza, reparti, macchine, componenti) etc.
    Errato. Tutti questi campi che hai descritto devono andare a finire in molte più tabelle BEN RELAZIONATE=NORMALIZZATE. Il male del tuo database nasce proprio da qui...ed è impossibile/incomprensibile continuare sulla strada che avresti intrapreso tu.
    Ti consiglio di aprire una nuova discussione nella sezione "Progettazione database".
  • Re: Settare valore condizionato textbox di un report

    Baley ha scritto:


    @Osvaldo, appena riesco cerco di risponderti con calma e spiegarti tutto con chiarezza, ti ringrazio per la pazienza e l'aiuto

    @Alex, non capisco, come mi è capitato in un precedente tread di dirti, la necessità di rivolgersi in questo modo alle persone. Sono qui per chiedere aiuto, non mi sembra di essere scortese, quindi ti ripeto il tuo tono saccente è fuori luogo: puoi esprimere gli stessi concetti senza cercare di far sembrare il tuo interlocutore un povero sciocco, anche perché corri il rischio di ottenere l'esatto opposto.
    Partendo dall'assunto che siamo in un Forum tecnico in cui serve avere una conoscenza di base per potersi confrontare, io rimarrei sull'aspetto tecnico, perchè altrimenti il singolo "non esperto" ha sempre l'impressione di essere il bersaglio, io invece ho l'impressione che il Calimero che c'è in noi esca a sproposito...

    Prova a rileggere il messaggio che ti ho proposto in risposta alle tue richieste, e magari prova a scorìllarti di dosso quella sensazione di poca educazione che ritieni abbia avuto, e cerca di pensare che ti ho dato dei suggerimenti funzionali e di metodo...
    Ora pensa che chi ti risponde, vede che non solo non comprendi, ma che vai per la strada sbagliata, confusa, e poco tecnica, non argomentata.

    Pensa anche che sentirsi rappresentare con chiaro relismo tecnico la verità non può essere offensivo, perchè che tu stia esponendo in modo confuso, non supportato da concetti tecnici basilari, e con errori sostanziali è un aspetto oggettivo e reale, e questo non deve offenderti a meno che tu non sia il calimero permaloso della situazione, ma in tal caso...

    Quindi se trovi seccante sentirti dire che è complicato darti supporto tecnico per le carenze espositive e concettuali, prova ad accettare anche la possibilità sia vero... e magari approfitta di quanto ti viene detto per orientare il tuo impegno a studiare qualche concetto tecnico più concreto con cui riuscire a fare chiarezza sia in quanto ti viene proposto che in quanto proponi.

    La sensazione invece è che tu, pur nella palese ignoranza tecnica settoriale, e non è un'offesa ma un dato oggettivo poi se ti offendi io sarò capace di superarlo, voglia fare un poco quello che ti passa per la testa il che va benissimo, ma cercare conferme diventa come ti dicevo complicato.

    Baley ha scritto:


    .....varie cose...
    Ti leggo anche volentieri... ma non mi dici nulla che mi possa far appassionare.

    Quindi ti auguro buon lavoro.
  • Re: Settare valore condizionato textbox di un report

    @Alex ha scritto:


    Baley ha scritto:


    @Osvaldo, appena riesco cerco di risponderti con calma e spiegarti tutto con chiarezza, ti ringrazio per la pazienza e l'aiuto

    @Alex, non capisco, come mi è capitato in un precedente tread di dirti, la necessità di rivolgersi in questo modo alle persone. Sono qui per chiedere aiuto, non mi sembra di essere scortese, quindi ti ripeto il tuo tono saccente è fuori luogo: puoi esprimere gli stessi concetti senza cercare di far sembrare il tuo interlocutore un povero sciocco, anche perché corri il rischio di ottenere l'esatto opposto.
    Partendo dall'assunto che siamo in un Forum tecnico in cui serve avere una conoscenza di base per potersi confrontare, io rimarrei sull'aspetto tecnico, perchè altrimenti il singolo "non esperto" ha sempre l'impressione di essere il bersaglio, io invece ho l'impressione che il Calimero che c'è in noi esca a sproposito...

    Prova a rileggere il messaggio che ti ho proposto in risposta alle tue richieste, e magari prova a scorìllarti di dosso quella sensazione di poca educazione che ritieni abbia avuto, e cerca di pensare che ti ho dato dei suggerimenti funzionali e di metodo...
    Ora pensa che chi ti risponde, vede che non solo non comprendi, ma che vai per la strada sbagliata, confusa, e poco tecnica, non argomentata.

    Pensa anche che sentirsi rappresentare con chiaro relismo tecnico la verità non può essere offensivo, perchè che tu stia esponendo in modo confuso, non supportato da concetti tecnici basilari, e con errori sostanziali è un aspetto oggettivo e reale, e questo non deve offenderti a meno che tu non sia il calimero permaloso della situazione, ma in tal caso...

    Quindi se trovi seccante sentirti dire che è complicato darti supporto tecnico per le carenze espositive e concettuali, prova ad accettare anche la possibilità sia vero... e magari approfitta di quanto ti viene detto per orientare il tuo impegno a studiare qualche concetto tecnico più concreto con cui riuscire a fare chiarezza sia in quanto ti viene proposto che in quanto proponi.

    La sensazione invece è che tu, pur nella palese ignoranza tecnica settoriale, e non è un'offesa ma un dato oggettivo poi se ti offendi io sarò capace di superarlo, voglia fare un poco quello che ti passa per la testa il che va benissimo, ma cercare conferme diventa come ti dicevo complicato.

    Baley ha scritto:


    .....varie cose...
    Ti leggo anche volentieri... ma non mi dici nulla che mi possa far appassionare.

    Quindi ti auguro buon lavoro.
    Hai risposto ad un altro messaggio, non al mio, e continui a difettare di logica, non c'entra nulla quello che scrivi con quello che ti ho detto.
    Ho fatto delle obiezioni alle tue critiche, le hai volutamente omesse nel tuo ultimo post come se io avessi parlato di Filologia romanza e non di precisi errori che tu hai fatto nel leggere i miei post.
    Quali suggerimenti mi hai dato? A quale delle mie domande hai risposto finora?

    TI ho fatto notare due errori grossolani che hai fatto ma tu, da buon arrampicatore di specchi, la stai buttando sul personale, sull'essere permalosi, senza rispondere nel merito ad una, dico una, delle mie obiezioni. Non sei nemmeno in grado di dire se e perchè ritieni consono rivolgerti come fai a chi viene qua a chiedere aiuto.
    "non hai capito nulla", "dove hai intuito" non sono espressioni soggettivamente antipatiche, dovertelo spiegare è offensivo per la tua intelligenza. questo nel caso in cui tu mi abbia risposta in buona fede, cosa che dubito.
    Non ho problemi ad ammettere la mia grande ignoranza in campo VBA, programmazione, Access e molto molto altro ancora. Che mi si dica "guarda secondo me devi studiare questo, quello o quell'altro concetto perchè non ti è chiaro" lo accetto volentieri, anzi con piacere! Voler farmi credere che è quello che hai fatto, questo è offensivo.

    Leggo spesso questo forum e ti ho letto spesso rivolgerti allo stesso modo a molta altra gente che parimenti ti ha fatto notare la tua poca educazione. Ho scritto questi ultimi 2 messaggi per divertissement, non che abbia l'ambizione di cambiarti: visto che citi calimero, sarai ad occhio almeno sopra i quaranta.
    Cosa c'entra poi calimero?
    Calimero, immagino tu ti stia riferendo al ben noto pulcino piccolo e nero, può essere impiegato come personificazione del vittimismo mentre l'accusa che da te mi viene rivolta è di essere permaloso. Accusa legittima in sé, ma nulla a che vedere col sentirsi vittima e fuori fuoco come ti ho spiegato poc'anzi perché mi piace studiare e accetto di buon grado chiunque sappia indirizzarmi in tal senso.
    Permalosità e vittimismo non sono dunque a stessa cosa: ti rinnovo invito a robusto ripasso della lingua italiana e delle buone maniere.

    Evita di rispondere per cortesia ad eventuali miei futuri tread, buon lavoro anche a te!
  • Re: Settare valore condizionato textbox di un report

    OsvaldoLaviosa ha scritto:


    Baley ha scritto:


    Ogni pulizia è caratterizzata dal nome della macchina, del componente macchina, dal numero del reparto, della cella produttiva, dalla procedura, dagli attrezzi, dalla frequenza con cui viene effettuata, dai giorni in cui viene effettuata (ad es. 1 volta al mese, il lunedi; un'altra, 1 volta al mese il giovedì), dal turno in cui viene effettuato eccetera. So per certo che hai intuito che questi sono tutti campi della tabella principale a cui sono collegate con relazioni 1 a molti le varie tabelle con le liste univoche delle varie cose citate (celle, attrezzi, frequenza, reparti, macchine, componenti) etc.
    Errato. Tutti questi campi che hai descritto devono andare a finire in molte più tabelle BEN RELAZIONATE=NORMALIZZATE. Il male del tuo database nasce proprio da qui...ed è impossibile/incomprensibile continuare sulla strada che avresti intrapreso tu.
    Ti consiglio di aprire una nuova discussione nella sezione "Progettazione database".
    Le tabelle sono tutte normalizzate, non c'è ridondanza di dati. Il database funziona perfettamente, funzionano tutte le query con i vari join, non ho avuto problemi di alcun tipo finora, se non perché non so programmare bene in vba.
    Aggiungo che ogni procedura è identificata da un ID se era questo il dato mancante.
    Come trovi scritto nel testo quotato quei dati SONO in tabelle normalizzate, legate alla tabella procedure da relazioni 1 a molti.
    Onestamente non capisco il tuo punto, non credo di mancare di teoria (può essere è per carità), questa roba l'ho studiata e credo di averla capita. Prima di lanciarmi in una riscrittura del database vorrei tu mi spiegassi per piacere perchè è sbagliata la mia tabella, grazie.
  • Re: Settare valore condizionato textbox di un report

    Caro Osvaldo, mi pare di essere stato civilissimo. Non so come siete abituati su questo forum ma io nella vita reale quando spiego qualcosa a qualcuno non uso mai termini come "non hai capito nulla", "dove hai intuito" etc. (e mi riferisco anche a vecchi tread).
    CHe anche tu stia cercando di farmi passare per uno che vuole fare polemica e al contempo di giustificare l'altro utente per la sua maleducazione, mi lascia perplesso e forse a questo punto è un problema ambientale, per cui non posso cavare un ragno dal buco qua.

    Mi ripeto per l'ennesima volta, non contesto i contenuti di quello che scrive Alex, se non per i due grossolani errori che ha fatto in uno de suoi post, quindi le sue critiche e domande sono tutte più che pertinenti, quando le fa. Contesto il modo, la saccenza, la rudezza e la mancanza di empatia con cui si esprime. Mi pare di esprimermi in un italiano accettabile e che tu possa capire cosa intendo, a differenza di quando parlo di database.

    A tal proposito ho detto e ripeto che probabilmente non sono grado di essere più chiaro di così, credevo di esserlo stato, ma di più non posso fare, grazie comunque.
    La tabella è normalizzata, non ti posto lo schema relazionale perché sarà un software interno alla mia azienda e non mi sembra il caso (seppur di poca importanza). Credo di aver capito dove volevi andare a parare, tu avresti separato Frequenza, Giorno e Settimana delle pulizie in una tabella a parte dove avresti incluso tutte le possibili combinazioni e collegato queste tramite chiave primaria alla tabella principale: lunghissimo procedimento, non so quanto necessario (se la normalizzazione non è 3NF non crolla il mondo, il db funziona uguale, anzi in alcuni casi una certa denomarlizzazione può essere necessaria, come nel mio ad esempio che ho il problema di importazione dati).

    A conclusione vi dico di aver risolto il problema da solo e che sono riuscito a scrivere e formattare con VBA come chiedevo di spiegarmi, il codice non sarà un capolavoro ma funziona egregiamente, ne posto uno stralcio per chi avrà il mio stesso problema in futuro.

    Anche qui sorge una domanda: non sostenevi che era impossibile proseguire sulla strada che dicevo io? Come ho potuto riuscirci?
    Se il nocciolo è che io non mi so spiegare e per questo voi non capite nulla non so cosa dirvi, ho riletto i miei ultimi post e sembrano comprensibili, capisco che non sono imparziale. Ho però il sospetto che voi siate talmente dentro il software che mezza "virgola" fuori posto quando uno parla di Access vi mandi in tilt non cogliendo il punto della questione.
    Il punto era: si può scrivere (e formattare in modo condizionale con vba)? RIsposta: SI
    Cosa è fondamentale per fare ciò? Presenza dei controlli associati nel report (immagino, eh, perché non ho la controprova).
    Cosa serve scrivere in vba? Me.Controls(nomecampo).Value= valore e Me.Controls(nomecampo).BackColor= colore.
    Mi sono risposto da solo, ma fa lo stesso.
    Grazie comunque per il tempo speso

    Codice:
    'Formattazione delle text box della checklist
        
        'COLORE
            For i = 1 To 21
        Select Case frequenza
            Case "3/S", "1/S"
                Select Case i
                Case 1, 4, 7, 10, 13, 16, 19
                Me.Controls("G" & i).BackColor = lngYellow
                Case 2, 5, 8, 11, 14, 17, 20
                Me.Controls("G" & i).BackColor = lngRed
                Case 3, 6, 9, 12, 15, 18, 21
                Me.Controls("G" & i).BackColor = lngViolet
                End Select
            Case "1/D"
                Select Case i
                Case 1, 4, 7, 10, 13, 16, 19
                Me.Controls("G" & i).BackColor = lngYellow
                Case 2, 5, 8, 11, 14, 17, 20
                Me.Controls("G" & i).BackColor = lngGrey
                Case 3, 6, 9, 12, 15, 18, 21
                Me.Controls("G" & i).BackColor = lngGrey
                End Select
            End Select
        
        Next i
        
        'TESTO
        For i = 1 To 21
        If Me.Freq.Value = "3/S" Then
            Me.Controls("G" & i).Value = "12"
        Else
            Me.Controls("G" & i).Value = ""
        End If
        Next i
  • Re: Settare valore condizionato textbox di un report

    Chiudo il thread visto che è degenerato.
Devi accedere o registrarti per scrivere nel forum
21 risposte