Inserimento record in una maschera e report

di il
63 risposte

Inserimento record in una maschera e report

Buongiorno a tutti.
Volevo chiedervi due consigli:
io ho una tabella chiamata TBL_MITDEST in cui ho l'anagrafica di tutti i mittenti e/o destinatari della corrispondenza della mia azienda. Ogni giorno riceviamo fatture,raccomandate e plichi da questi e dobbiamo registrare tutto ciò che passa in reception.
Per questa tabella ho creato una maschera in autocomposizione per immettere in maniera molto semplice i dati e ho spuntato nelle proprietà della maschera "immissione dati =SI" in maniera tale che al caricamento la maschera risulti vuota e pronta per l'inserimento di una nuova anagrafica.
Il mio quesito è il seguente: quando inizio a scrivere un nuovo mittente/destinatario la maschera dovrebbe controllarmi che il mittente/destinatario sia già presente in anagrafica...ad esempio in anagrafica ho PIPPO SPA con indirizzo città cap ecc.. ma se inizio a scrivere nel campo mittente/destinatario P e poi I poi P non succede nulla e continuando rischio di trovarmi due volte la PIPPO SPA.
C'è un modo per ovviare a questo e fare in modo che iniziando a scrivere PIP...mi si completino tutti i campi ?
Successivamente l'altro quesito: come potrei fare per stampare tramite report solo i mittenti/destinatari nuovi inseriti in un dato giorno? Ad esempio un pulsante di comando che generi un report con le anagrafiche inserite nella data odierna.
Grazie mille e a presto

63 Risposte

  • Re: Inserimento record in una maschera e report

    C'è un modo per ovviare a questo e fare in modo che iniziando a scrivere PIP...mi si completino tutti i campi ?
    Creati una casella combinata con origine dati il campo specifico della tabella.
    come potrei fare per stampare tramite report solo i mittenti/destinatari nuovi inseriti in un dato giorno? Ad esempio un pulsante di comando che generi un report con le anagrafiche inserite nella data odierna.
    Hai una data tra i campi della tabella a cui fare riferimento?
  • Re: Inserimento record in una maschera e report

    Si, la data di ingresso o di partenza della corrispondenza...può essere utile?

    Che proprietà deve avere la casella combinata? Perchè mi fa solo scegliere il mittente/destinatario già esistente e non mi fa inserire nuove anagrafiche e in più anche se scelgo un mittente/destinatario già esistente non si autocompletano gli altri campi
    Grazie
  • Re: Inserimento record in una maschera e report

    Si, la data di ingresso o di partenza della corrispondenza...può essere utile?
    Se è utile lo devi decidere tu.
    In caso affermativo puoi crearti una query con i campi che ti servono nel report e nel campo data metti nei criteri Date() se vuoi solo la data odierna o [Digita la data] se vuoi una maschera di input dove puoi digitare la data che vuoi.
    Che proprietà deve avere la casella combinata? Perchè mi fa solo scegliere il mittente/destinatario già esistente e non mi fa inserire nuove anagrafiche e in più anche se scelgo un mittente/destinatario già esistente non si autocompletano gli altri campi
    Se non ti fa inserire nuovi valori è perché nelle proprietà devi mettere no a "solo in elenco".
    Per l'autocompletamento degli altri campi ci sono vari metodi se sai usare vba, ma penso che il tuo db sia strutturato male. Mi sembra che tu abbia una sola tabella che tu chiami anagrafica ma dove inserisci anche i campi della corrispondenza. Dovresti avere almeno due tabelle una solo per l'anagrafica e una per la corrispondenza relazionate tra loro attraverso le chiavi PK e FK.
    In quel caso se nella tabella corrispondenza hai come FK la chiave primaria dell'anagrafica ti basterebbe una casella combinata per inserire il mittente ad esempio.
  • Re: Inserimento record in una maschera e report

    Se volessi fare due tabelle come dovrei strutturarle?
    Ad esempio potrei fare la prima TBL_MITDEST (tabella anagrafica mittenti/destinatari) con
    ID (PK)
    Nome
    Indirizzo
    Città
    Provincia
    CAP
    Stato

    la seconda tabella TBL_CORRISPONDENZA

    ID
    NUMERO CORRISPONDENZA
    TIPO CORRISPONDENZA
    DATA ACCETTAZIONE
    ID MITTENTE/DESTINATARIO (FK)

    giusto?

    La maschera di immissione dati come dovrei impostarla?
    Grazie mille
  • Re: Inserimento record in una maschera e report

    Le due tabelle sono pensate bene. Io non sono d'accordo sul mettere la proprietà Solo in elenco: No. In base al nuovo scenario (più chiaro) andrei su una strutturazione classica.
    1. Oltre all'aver creato le due tabelle così, devi preoccuparti di creare la relazione MITDEST uno-a-molti CORRISPONDENZA attraverso il campo ID. Nella finestra Relazioni abbi cura di mettere la spunta su "Applica integrità referenziale"
    2. Io costruirei due maschere separate (M_MITDEST e M_CORRISPONDENZA) sulle singole tabelle.
    3. Sulla maschera M_CORRISPONDENZA costruirei una casella combinata "ben congeniata" che guarda ID ma mostra Nome.
    4. Aggiungerei un pulsante al cui clic si apre M_MITDEST per l'inserimento di eventuali nuovi Nomi
    5. Aggiungerei su M_MITDEST un pulsante per chiudere sè stessa e aggiornare il nuovo valore in M_CORRISPONDENZA.ID

    Per i punti 4. e 5. occorre lavorare con qualche codice in VBA oppure macro.
  • Re: Inserimento record in una maschera e report

    Come posso fare per il punto 5 ??? Io ho creato una maschera M_CORRISPONDENZA in modalità immissione dati (tutti i campi vuoti) dove inserisco la nuova corrispondenza e il mittente lo "pesco" dalla tabella MITDEST tramite Casella Combinata...naturalmente se il mittente non c'è ho un pulsante che mi chiude la maschera M_CORRISPONDENZA (forse qui sbaglio!!!), mi apre la maschera MITDEST, inserisco il nuovo mittente, chiude la maschera MITDEST e riapre la maschera CORRISPONDENZA. Naturalmente trovo il nuovo mittente nella casella combinata ma la maschera CORRISPONDENZA ha salvato in precedenza il record vuoto e inizio a scrivere un nuovo record successivo a quello vuoto. Spero di esser stato chiaro.
    Grazie
  • Re: Inserimento record in una maschera e report

    Devi annullare il record prima di chiudere la maschera CORRISPONDENZA .
    Altrimenti non chiudi la maschera CORRISPONDENZA e fai un aggiornamento
    della casella combinata dopo aver aggiunto il nuovo mittente nella MITDEST.
  • Re: Inserimento record in una maschera e report

    Giusto! Posso farlo in genera macro aggiungendo una linea di comando? Non saprei come fare
  • Re: Inserimento record in una maschera e report

    Io non uso le macro, ma penso proprio di si.
  • Re: Inserimento record in una maschera e report

    Come fai senza macro?
  • Re: Inserimento record in una maschera e report

    Con vba.
  • Re: Inserimento record in una maschera e report

    Potresti aiutarmi? Con la macro non riesco proprio
  • Re: Inserimento record in una maschera e report

    Guarda anche se non uso le macro, ma mi sembra una cosa molto semplice.
    nella tua macro sul pulsante prima dell'azione di chiusura della maschera Corrispondenza aggiungi una riga,
    nell'azione scrivi EseguiComando e nell'argomento Annulla
  • Re: Inserimento record in una maschera e report

    OsvaldoLaviosa ha scritto:


    4. Aggiungerei un pulsante al cui clic si apre M_MITDEST per l'inserimento di eventuali nuovi Nomi
    5. Aggiungerei su M_MITDEST un pulsante per chiudere sè stessa e aggiornare il nuovo valore in M_CORRISPONDENZA.ID
    Riprendiamo il discorso da qui. Chiamerei Pulsante1 quello che sta nella maschera CORRISPONDENZA, Pulsante2 quello in maschera MITDEST.

    1. Apri una macro in visualizzazione struttura
    2. Al primo rigo Azioni, scrivi:
    ApriMaschera
         Nome maschera: MITDEST
         Modalità immissione dati: Aggiungi
    3. Salva la macro con nome Aggiungi

    4. Apri una nuova macro in visualizzazione struttura
    5. Questo il set di Azioni da scrivere:
    ImpostaValore
         Elemento: [Maschere]![M_CORRISPONDENZA]![ID MITTENTE/DESTINATARIO]
         Espressione: [Maschere]![M_MITDEST]![ID]
    Chiudi
         Tipo oggetto: Maschera
         Nome oggetto: MITDEST
    VaiAControllo
         Nome controllo: ID
    RieseguiQuery
    6. Salva la macro con nome Aggiorna

    Associa al evento "Su clic" di Pulsante1 la macro Aggiungi.
    Associa al evento "Su clic" di Pulsante2 la macro Aggiorna.

    Come ti devi comportare. Quando sei in maschera CORRISPONDENZA, se digiti un Nome esistente OK. Se non c'è nella lista, scegline momentaneamente uno a caso e clicca su Pulsante1. Si aprirà la maschera MITDEST e scrivi i nuovi dati. Poi, clicca su Pulsante2 e vedrai aggiornato il valore dentro la casella combinata ID in maschera CORRISPONDENZA.
Devi accedere o registrarti per scrivere nel forum
63 risposte