Valori Form

di il
9 risposte

Valori Form

Buonasera,
ho un problema da sottoporre:
Cliccando su record di una maschera continua ho previsto il caricamento di una form che, attraverso un pulsante, consente l'immissione di nuovi dati nel Database utilizzando delle istruzioni INSERT INTO e UPDATE. Successivamente viene stampato il relativo report.
Qualora, però, i dati corrispondenti a quel record fossero già stati immessi in precedenza, come potrei fare per visualizzarli nella form ed eventualmente variarli?
Grazie.

9 Risposte

  • Re: Valori Form

    Puoi descrivere meglio, magari con qualche stralcio di codice, come operi l'apertura della Maschera... soprattutto per capire da quale comando posizionato dove nella maschera...?

    Nell'insieme mi pare tu stia operando in un modo un poco strano ma magari basta capirlo...
  • Re: Valori Form

    Si mi spiego meglio:
    C'è una maschera principale che contiene una sottomaschera continua. In quest'ultima sono elencati dei record che contengono delle informazioni, tipo: committente, numero di campione, data, ecc. Ad ognuno di questi set di dati occorre associare dei valori d'analisi. Cliccando sui record della maschera continua si apre di una form contenete le textbox e combobox dove possibile immettere i dati. I dati sono immessi in una tabella attraverso la pressione di un pulsante che esegue delle sub del tipo:
    Private Sub indice_viscosità() 'indice di viscosità
    Dim db As DAO.Database
    Dim strsql As String, Min As String, Max As String
    Set db = CurrentDb
    Min = DLookup("[Min]", "Q_Limiti", "[ID_Analisi_Campione_Lim]=17 And [Tipo_Campione] = '" & tcamp & "'")
    Max = DLookup("[Max]", "Q_Limiti", "[ID_Analisi_Campione_Lim]=17 And [Tipo_Campione] = '" & tcamp & "'")
                If DCount("*", "Valore_Analisi", "ID_Analisi_Campione=17 AND ID_Assegnazione=" & N_ID) = 0 Then
                strsql = "INSERT INTO Valore_Analisi (ID_Analisi_Campione,ID_Assegnazione,Valore_Analisi,Min,Max)" & _
                " values(17," & N_ID & ",'" & Me.txt_indvisc & "','" & Min & "','" & Max & "')"
                db.Execute strsql
                DoCmd.SetWarnings False
                End If
                If DCount("*", "Valore_Analisi", "ID_Analisi_Campione=17 AND ID_Assegnazione=" & N_ID) = 1 Then
                strsql = "UPDATE Valore_Analisi SET ID_Analisi_Campione=17,ID_Assegnazione=" & N_ID & ",Valore_Analisi='" & Me.txt_indvisc & "',Min='" & Min & "',Max='" & Max & "'" & _
                " WHERE ID_Analisi_Campione=17 AND ID_Assegnazione=" & N_ID
                db.Execute strsql
                DoCmd.SetWarnings False
                End If
    End Sub
    Questo è un esempio ma per ogni dato da inserire ci sono altre sub analoghe.
    Fino a che i dati siano prima immissione va bene, ma se i dati fossero stato già immessi come faccio a visualizzarli nella form?
    Ovviamente i vari controlli nella form sono "non associati".
  • Re: Valori Form

    Se sei in form non associata devi prima recuperare un recordset con gli eventuali dati presenti, compili le TextBox e poi procedi.
  • Re: Valori Form

    In che modo? Eseguendo delle Dlookup() da codice?
  • Re: Valori Form

    Apri un recordset sulla tabella che contiene o che potrebbe contenere i dati... facendo attenzione al criterio WHERE che dovrà essere la chiave esterna della tabella lato 1.
    Il dlookup va bene se serve 1 dato ma se devi estrarne [n]... no.
    In quel caso sempre meglio estrarre un oggetto che contiene tutto il malloppo records che serve.

    forum.masterdrive.it/access-79/access-leggere-scrivere-dati-nelle-tabelle-tramite-vba-dao-13176/
  • Re: Valori Form

    Grazie. Procederò cosi.
  • Re: Valori Form

    Scusa. Solo a titolo di curiosità. Ma non si potrebbe fare la stessa cosa sfruttando l'origine controllo e utilizzando il generatore d'espressioni di ogni textbox?
  • Re: Valori Form

    Hai appena detto di usare controlli non associati... deciditi su che strada tecnica vuoi usare con opportuna cognizione di causa... poi vedi tu.
    Usare la proprietà origine controllo senza un sistema associato, significherebbe usare i dlookup() per la massima inefficienza tecnica, ma a parte questo sarebbe meglio tu faccessi qualche prova prima di pensarci se non lo hai mai fatto... perche non riusciresti a modificare alcun controllo.

    Nella sostanza rifletti bene prima.
  • Re: Valori Form

    Ok.
Devi accedere o registrarti per scrivere nel forum
9 risposte