Newsgroup: it.comp.appl.access
Titolo: Id Basato su due campi

Buongiorno a tutti,
nella Tb_Ordini, ho un campo Num_Ord ed un campo ID_Fornitore (tutti e due 
di tipo testo)
Dalla miamaschera quando passo ad un nuovo ordine, il controllo Num_Ordine, 
come puo tenere conto della progressione, relativa a quel fornitore?
Es:
fornitore 1 ordine 001
fornitore 2 ordine 001
fornitore 1 ordine 002
fornitore 1 ordine 003
fornitore 2 ordine 002
Ciao Napoleone 

 ha scritto nel messaggio
news:b%Sme.126261$IN.21...@twister2.libero.it...

A fronte dell'evento "Prima di aggiornare" della maschera con una funzione
DCount (vedi help) conta il numero dei record presenti in tabella per quel
fornitore, quindi imposta il numero progressivo del record corrente con il
risultato della DCount +1.
-- 
Roberto
-----------------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
----------------------------------------------------


Grazie Roberto,
se fosse stato solo su  Num_Ord avrei fatto
---------------
=Format(IIf(DCount("[NumOrdID]";"Tb_Testata_Ord")=0;1;DMax("[NumOrdID]";"Tb_Testata_Ord")+1);"000")
non so come contarli per quel fornitore che ho selezionato nella 
Miamaschera, combo CasellaCombinata22.
Ciao
Napoleone

 ha scritto nel messaggio
news:7b%me.127097$IN.21...@twister2.libero.it...

Se il codice fornitore è contenuto in un campo di tipo Testo chiamato
ID_Fornitore di una tabella chiamata Tb_Ordini, a fronte dell'evento prima
di aggiornare della maschera prova a generare il seguente codice VBA:
Me!NumOedID = Format(DMax("Num_Ord ", "Tb_Ordini", _
"ID_Fornitore ='" & Me!CasellaCombinata22 &  "'") + 1, "000")



L'ho cosi aggiustato, ma non succede nulla, nemmeno segnali d'errori.
Private Sub NumOrdID_BeforeUpdate(Cancel As Integer)
 Me!NumOrdID = Format(DMax("NumOrdID ", "Tb_Testata_Ord", _
"lCodiceBarreFornitore ='" & Me!CasellaCombinata22 & "'") + 1, "000")
End Sub
Ciao
Napoleone 

 > Se il codice fornitore č contenuto in un campo di tipo Testo -- 

Forse ti č sfuggito che ti ho suggerito di generare quel codice VBA a fronte
dell'evento "Prima di aggiornare" della maschera e non del controllo
NumOrdID come hai invece fatto tu.



l'ho fatto
-----
Private Sub Form_BeforeUpdate(Cancel As Integer)
Me!NumOrdID = Format(DMax("NumOrdID ", "Tb_Testata_Ord", _
"lCodiceBarreFornitore ='" & Me!CasellaCombinata22 & "'") + 1, "000")
End Sub
----
Non cambia nulla,
non succede nulla e come prima nemmeno segnali d'errori.
Napoleone

 ha scritto nel messaggio
news:0hkne.128788$IN.22...@twister2.libero.it...

Sostituisci la funzione DMax con una DCount, altrimenti il primo numero
d'ordine di un fornitore assume il valore Null; prova così:
Private Sub Form_BeforeUpdate(Cancel As Integer)
Me!NumOrdID = Format(DCount("*", "Tb_Testata_Ord", _
"lCodiceBarreFornitore ='" & Me!CasellaCombinata22 & "'") + 1, "000")
End Sub
Naturalmente per funzionare occorre che sia il campo lCodiceBarreFornitore
che la Colonna associata della CasellaCombinata22 siano di tipo Testo.


 ha scritto nel 
messaggio news:8jlne.128902$IN.22...@twister2.libero.it...

Tutto di tipo testo, ma ugualmente "Unnì vò sapiri"
mi sfuggirà qualche cosa?
Napoleone 


prova a spostare +1 fuori le parentesi
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa1 - I° Conferenza Italiana per Sviluppatori Access Arezzo 4+5
Giugno 2005 Sono aperte le iscrizioni  Info:  
www.donkarl.com/it

 >> "lCodiceBarreFornitore ='" & Me!CasellaCombinata22 & "'") , "000") + 1
Idem alla mia risposta di prima "Controllo vuoto"
Napoleone

 Napoleone


 ha scritto nel messaggio
news:6Klne.128949$IN.22...@twister2.libero.it...

Attento, come ti ho già detto nel mio altro messaggio, al momento che
inserisci un nuovo record, la casella di testo la vedrai vuota in quanto
viene riempia a fronte dell'evento "Prima di aggiornare", ma nella tabella
il numero d'ordine verrà registrato regolarmente.
Ha provato ad aprire la tabella Tb_Testata_Ord dopo aver inserito dei recod?
Se lo hai fatto nel campo NumOrdID  cos c'è?


 Cosa intendi con "Unně vň sapiri" ?
(Unni)Non ne (vň)vuole (sapiri)sapere
semplice!No?
 ma il valore lo  vedrai aprendo la tabella Tb_Testata_Ord o
ritornando su un record inserito precedentemente.
DIFATTI, Ora l'ho capito, anche se č preferibile che il numero ordine 
compaia subito.
Si potrebbe rimediare?
Grazie a Roberto, MA anche agli altri.
Napoleone 


Gia quando passo nella sottomaschera me lo visualizza!
Grazie
Napoleone 

 Napoleone
-- 



Ecco così va proprio bene!
Grazie
Napoleone