Newsgroup: it.comp.appl.access
Titolo: Traduzione di codice access

Scusate se chiedo una cosa che per molti sara' banale, ma il collega che
ha fatto questo lavoro si è licenziato prima delle ferie e il tutto è
toccato a me, che conosco access relativamente poco, un po' di piu' visual
basic.
(Purtroppo oggi non si puo' dire non sono capace perche' potresti restare
a casa il mattino dopo, sic!).
Ho queste righe di codice associate all'evento BeforeUpdate di un campo di
una maschera ("Ordini"). Ho capito che controlla se valore del campo
inserito è gia' presente per non duplicare il numero, ma esattamente come
fa'.
If DCount("[NumeroOrdineAcquisto]", "Ordini", "([NumeroOrdineAcquisto] =
[txNordine]) AND (year([DataOrdine]) = year(forms!Ordini![DataOrdine]))AND
([IDCasa] = forms!Ordini![IDCasa])") > 0 Then
        MsgBox ("Attenzione - Il NUMERO D'ORDINE INTERNO immesso esiste
già nell'archivio ordini." & Chr(13) & Chr(13) & "Prememe OK per immeterne
uno diverso." & Chr(13) & "Prememe ESC per annullare.")
        DoCmd.CancelEvent
End If
Io dovrei fare in modo che all'apertura della maschera appaia il
progressivo dall'ultimo numero di ordine inserito.
Grazie
               Claudia
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


dai claudia, mettiti sotto col lavoro che a casa non ti lascia nessuno!
Allora secondo me manca qualcosina da questo codice, o meglio, sarebbe 
interessante capire che procedura viene lanciata quando l'utente clicca si o 
cosa succede quando clicca no.
Come vedi a fronte di una prima valutazione del dato inserito  attraverso un 
dcount (ossia una funzione che conta nella tabella ordini quanti record 
hanno il numeroordineacquisto uguale a ordine e anno di una data della 
maschera.
vi è un controllo legato alla presenza dello stesso numero e all'utente 
viene chiesto che cosa vuole fare.
Se il codice che hai postato è tutto quello che sta sotto il bottone allora 
il lavoro è indubbiamente incompleto, nell'ipotesi opposta, ossia se nella 
stessa routine vi è altro codice ti suggerisco di postarlo cosi proviamo ad 
analizzarlo insieme.

 analizzarlo insieme.
Il codice è tutto qui:
Private Sub txNordine_BeforeUpdate(Cancel As Integer)
If DCount("[NumeroOrdineAcquisto]", "Ordini", "([NumeroOrdineAcquisto] =
[txNordine]) AND (year([DataOrdine]) = year(forms!Ordini![DataOrdine]))AND
([IDCasa] = forms!Ordini![IDCasa])") > 0 Then
        MsgBox ("Attenzione - Il NUMERO D'ORDINE INTERNO immesso esiste
già nell'archivio ordini." & Chr(13) & Chr(13) & "Prememe OK per immeterne
uno diverso." & Chr(13) & "Prememe ESC per annullare.")
        DoCmd.CancelEvent
End If
If Not IsNull(Me.txNordine) Then
    Me.Sottomaschera_Dettagli_ordini.Enabled = True
    Me.Sottomaschera_Dettagli_ordini.Locked = False
End If
 
End Sub
Magari c'e' qualcosa nell'apertura della form
Ma io vorrei soltanto sapere il n. dell'ultimo ordine immesso, con i
parametri impostati di IDCasa, per poterlo incrementare di 1 nel nuovo
record.


                Claudia
-- 
Roberto
-----------------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
----------------------------------------------------

               Claudia
Risposta
guarda se questa routin ti può aiutare
      'Calcolo Numero FatturaAvviso
       Strcriteria = "TipoFatturaAvviso = " & "'" & TipoFatturaSub & "'"
       If DCount("IDTestataFatture", "TestataFatture", Strcriteria) > 0 Then
          'Esiste già una Fattura
          MYSQL = "SELECT TOP 1 TestataFatture.TipoFatturaAvviso," & _
                  " TestataFatture.NumeroFatturaAvviso, 
TestataFatture.AnnoFatturaAvviso" & _
                  " FROM TestataFatture" & _
                  " WHERE TestataFatture.TipoFatturaAvviso = '" & 
TipoFatturaSub & "'" & _
                  " ORDER BY TestataFatture.TipoFatturaAvviso DESC ," & _
                  " TestataFatture.AnnoFatturaAvviso DESC," & _
                  " TestataFatture.NumeroFatturaAvviso DESC "
          Set MiaTabella = MioDB.OpenRecordset(MYSQL, dbOpenDynaset)
          NfatturaServ = MiaTabella!NumeroFatturaAvviso + 1
          AnnoFattura = MiaTabella!AnnoFatturaAvviso
       Else
          'Prima Fattura
          NfatturaServ = 1
          AnnoFattura = Str(Year(Date))
       End If
   End If
Riaudo marcello



vedo che roberto ti ha risposto più che esaurientemente ... sei in ottime 
mani.