Avanzamento

di il
5 risposte

Avanzamento

Buongiorno a tutti, mi trovo in difficoltà per la realizzazione di una funzione che mi permetta la gestione dello stato di avanzamento dei codici in produzione.
Allego link immagine della maschera e relativa struttura.
[img]
https://drive.google.com/drive/folders/0B99bsT5XtNwkVXUzTk9KMzNOWG8?usp=sharing
[/img]

Questa maschera si basa solo su una tabella, la quale ha tutti i campi visibili nell'immagine.
Il mio obbiettivo è quello di fare in modo che gli operatori in produzione debbano solo cliccare sul tasto "conferma avanzamento" per fare in modo che la data e l'ora vengano inserite in automatico nel campo opportuno (come per esempio la riga con il reparto taglio con la data sulla voce "entrata lotto" che vado ad inserire in automatico quando stampo la commessa).

Attualmente ho buttato giù questa bozza:

Set rs = dba.OpenRecordset("SELECT * FROM [tbl_percorso_lotti] WHERE [lotto]= lotto")
If rs.EOF Then
    MsgBox "NESSUN RECORD"
    Exit Sub
End If
If Len(rs.Fields(3).Value & "") = 0 Then
    rs.Edit 'Abilita la modifica del record
    rs.Fields(3) = data 'imposta il nuovo
    rs.Update 'Salva La modifica
    Exit Sub
End If

If Len(rs.Fields(4).Value & "") = 0 Then
    GoTo next1
Else
    If Len(rs.Fields(5).Value & "") = 0 Then
        rs.Edit 'Abilita la modifica del record
        rs.Fields(5) = data 'imposta il nuovo
        rs.Update 'Salva La modifica
    Else
        rs.Edit 'Abilita la modifica del record
        rs.Fields(6) = data 'imposta il nuovo
        rs.Update 'Salva La modifica
    End If
End If
next1:

If Len(rs.Fields(25).Value & "") = 0 Then
    GoTo next2
Else
    If Len(rs.Fields(26).Value & "") = 0 Then
        rs.Edit 'Abilita la modifica del record
        rs.Fields(26) = data 'imposta il nuovo
        rs.Update 'Salva La modifica
    Else
        rs.Edit 'Abilita la modifica del record
        rs.Fields(27) = data 'imposta il nuovo
        rs.Update 'Salva La modifica
    End If
End If
next2:
La quale però diventa troppo lunga ripetendola per ogni campo a disposizione da controllare.
Riuscita ad aiutarmi a semplificarla?
Grazie.

5 Risposte

  • Re: Avanzamento

    Vedendo la tua struttura è decisamente ERRATA, quella va bene per EXCEL non per un Database.
    Di fatto, non ho capito bene cosa devi fare ma soprattutto COME pensi di farlo... ma se devi assegnare in modo AUTOMATICO una data premendo un Button... basta l'assegnazione quindi NON serve a nulla tutta quella roba li....!

    Non si comprende da dove arriva la variabile [data]...
    Di fatto su CLICK del Button
    
    Me!NomeControlloAssociatoData=Now()
    Il problema di fondo è che si dovrebbe avere modo di scomporre il progetto in FASI, quelle che tu hai erroneamente inserito tutte nella stessa Tabella con REPARTI...
    Ogni Prodotto ha MOLTE FASI, ed ogni Reparto seleziona la propria ed a quel punto fa la presa in carico...

    Insomma, vedi tu, ma così non va bene.
  • Re: Avanzamento

    La variabile data la imposto sul momento tramite
    
    data = Now
    
    Come dici tu ogni codice ha molti reparti, quando invio un codice in produzione vado a pescare i reparti che deve attraversare da una tabella dentro la quale per ogni codice nuovo che viene creato in automatico carico la lista da un file di testo esterno.
    Non faccio altro che andare a copiare tutti i reparti interessati per aggiungerli alla tabella che uso per l'avanzamento di produzione in modo da sapere sempre in quale reparto si trova il codice.
    Quello che devo fare è che ogni volta che viene aperta la maschera e premuto il tasto "conferma avanzamento" compaia la data (la data di quando è stato premuto il pulsante) nel campo subito seguente.
    Alla fine del percorso la situazione dovrebbe essere questa:
    [img]
    https://drive.google.com/open?id=0B99bsT5XtNwkYTF1OWhvSElab1k
    [/img]

    Non so se mi sono spiegato.
  • Re: Avanzamento

    ash_79 ha scritto:


    ...
    Non so se mi sono spiegato.
    Si era chiaro da subito... ma a questo punto spiegaci tu... cosa non hai capito di quanto ti ho detto...?
    La struttura che usi è ERRATA, devi gestire una struttura 1-Molti in 2Forma Normale almeno, anche se penso sia opportuno valutare una MOLTI-MOLTI con 3 Tabelle in 3° Forma Normale.

    Se usi un Database e non conosci la Normalizzazione, credo siamo già oltre alla comprensione del problema... e tu ti sentirai INCOMPRESO, ma credimi è il contrario... e non avresti minimamente bisogno di alcun codice se fosse fatto come si deve.
  • Re: Avanzamento

    Mi sembrava di capire dalla frase
    Di fatto, non ho capito bene cosa devi fare
    che non avessi capito, quindi ho rispiegato.
  • Re: Avanzamento

    ash_79 ha scritto:


    Mi sembrava di capire dalla frase
    Di fatto, non ho capito bene cosa devi fare
    che non avessi capito, quindi ho rispiegato.
    E' proprio così, nel senso che per come hai strutturato la cosa è concettualmente incomprensibile la gestione... ma il concetto di cosa servirebbe è chiaro... spero tu riesca a riflettere meglio sulla struttura.
Devi accedere o registrarti per scrivere nel forum
5 risposte