+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 9 su 9

Richiesta come ridurre righe di codice

  1. #1
    tatix non  in linea Scolaretto
    Buongiorno a tutti.
    Io devo fare una maschera che contiene pi righe per la distinta base di una macchina (ma la stessa cosa vale per gli acquisti).
    Allora nella maschera apro una tabella di "appoggio". Quando termino di inserire i dati entro in un codice che controlla che i dati immessi siano congruenti. Se i dati non sono errati li copio nella tabella master, altrimenti invio un messaggio di errore per gestire lo stesso. Una volta copiati i dati nella tabella Master, cancello i campi della tabella di appoggio.

    Dovendo ripetere questo per ogni tabella il programma diventa ripetitivo.
    C' un modo per verificare che i dati siano congruenti mentre li immetto?
    Se si potete farmi un esempio banale?
    Grazie
    Ultima modifica di tatix; 10-09-2021 11:37 

  2. #2
    OsvaldoLaviosa non  in linea Topo di biblioteca
    Quote Originariamente inviato da tatix
    Io devo fare una maschera che contiene pi righe per la distinta base di una macchina (ma la stessa cosa vale per gli acquisti).
    Allora nella maschera apro una tabella di "appoggio". Quando termino di inserire i dati entro in un codice che controlla che i dati immessi siano congruenti. Se i dati non sono errati li copio nella tabella master, altrimenti invio un messaggio di errore per gestire lo stesso.
    Fin qui sembra un ragionamento corretto.

    Quote Originariamente inviato da tatix
    Dovendo ripetere questo per ogni tabella il programma diventa ripetitivo.
    Qui la questione mi inquieta un po'.

    Quote Originariamente inviato da tatix
    C' un modo per verificare che i dati siano congruenti mentre li immetto?
    Se si potete farmi un esempio banale?
    necessario che sia tu a raccontare il tuo scenario tabelle/campi/relazioni (nomi propri)...e tabelle di appoggio...per capire come ottimizzare la questione.
    ℹ️ Leggi di pi su OsvaldoLaviosa ...

  3. #3
    tatix non  in linea Scolaretto
    Ok ci provo cercando di semplificare.
    Ho una Maschera base dove c' un campo nome_distinta_base.
    All'interno della Maschera, ho una sottomaschera con una tabella vuota per semplificare con un campo nome_materiale.

    Ora entrambi i campi sono stringhe e ipotizziamo che vadano bene tutto ci che si scrive dentro.
    L'unico controllo che devo fare prima di lasciare la maschera che nessun campo sia NULL.
    Si riesce a fare questo controllo sul campo nome_distinta_base e sui campi nome_materiale prima di uscire dalla maschera? (ovviamente il campo nome_distinta_base ha un solo valore, mente i dati del campo nome_materiale, possono avere pi valori).

    Questo mi eviterebbe di fare del codice e quindi riuscirei a scrivere direttamente nella tabella master senza avere la tabella di appoggio
    Grazie
    Ultima modifica di tatix; 10-09-2021 12:21 

  4. #4
    OsvaldoLaviosa non  in linea Topo di biblioteca
    Si tratta di azzeccare l'evento pi appropriato alla tua esigenza...io faccio fatica su alcuni di essi...mi viene di pensare a "Prima di aggiornare", quindi un codice VBA che potrebbe essere
    If IsNull(Me!Campo1) Or IsNull(Me!Campo2) Then MsgBox "Non hai compilato tutti i campi"
    
    Ultima modifica di OsvaldoLaviosa; 10-09-2021 13:13 
    ℹ️ Leggi di pi su OsvaldoLaviosa ...

  5. #5
    L'avatar di @Alex
    @Alex non  in linea Moderatore Globale
    Usa la propriet REGOLE DI VALIDAZUONE e gestosci l'errore eventualmente per personalizzarlose serve su Form Error.
    https://support.microsoft.com/en-us/...f-e3a0272e988d
    ℹ️ Leggi di pi su @Alex ...

  6. #6
    tatix non  in linea Scolaretto
    Ok sto provando.
    Ho inserito il codice all'evento prima dell'aggiornamento.
    La prima volta funziona. Ho provato a dare di nuovo il focus al campo nome_distinta_base_item ma non ci va
    Trascrivo il codice

    Private Sub Form_BeforeUpdate(Cancel As Integer)
    If IsNull(Me!Nome_distinta_base_item) Then
        MsgBox "Non hai compilato il campo nome distinta base"
        Nome_distinta_base_item.SetFocus
    end if
    
    ho provato anche con Me.Nome_distinta_base_item.SetFocus ma non va.


    Grazie
    Ultima modifica di AntonioG; 10-09-2021 13:44  Motivo: Tag CODE

  7. #7
    Il codice va inserito tra tag CODE. Vedi il Regolamento, non sei nuovo.
    ℹ️ Leggi di pi su AntonioG ...

  8. #8
    OsvaldoLaviosa non  in linea Topo di biblioteca
    Se vuoi fare il controllo campo per campo, allora il BeforeUpdate lo devi fare sul Campo stesso e non sulla Form.
    Non sottovalutare il suggerimento di @Alex.
    ℹ️ Leggi di pi su OsvaldoLaviosa ...

  9. #9
    tatix non  in linea Scolaretto
    Risolto grazie.
    Il problema era stato gi trattato da Alex nel 2010

    Cercando in internet ho trovato il thread del 6-2-2010

    Grazie
    Ultima modifica di tatix; 10-09-2021 15:09 

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Risposte: 8
    Ultimo Post: 08-07-2015, 16:31
  2. Risposte: 3
    Ultimo Post: 19-12-2010, 18:04
  3. Risolto: Pause tra righe di codice
    Da giammison nel forum Visual Basic .Net
    Risposte: 7
    Ultimo Post: 18-11-2010, 11:54
  4. Righe di codice
    Da cippalippa nel forum Visual Basic .Net
    Risposte: 2
    Ultimo Post: 11-10-2007, 11:25
  5. Ridurre i tempi
    Da lul nel forum Microsoft Word
    Risposte: 3
    Ultimo Post: 15-01-2007, 21:44