Newsgroup: it.comp.appl.access
Titolo: codice documento mi serve una scappatoia

Salve a tutto il newsgroup,
mi stavo dedicando alla stesura di un piccolo archivio per documenti, pagine 
web, foto mail ecc. Vorrei classificarli in base ad un codice univoco che 
dovrebbe essere calcolato dall'evento "on update" del campo codice e 
inserisca il testo nella casella in modo automatico calcolandolo cercando i 
valori di altri tre campi/oggetti della maschera. Userò maschere singole, e 
il codice poi sarà convertito in barcode. Il problema che non riesco a 
focalizzare è semlicemente: come leggo i valori dei campi che mi servono 
nella maschera corrente (non ancora salvata) dovrei accedere alla proprietà 
.text della casella di testo ma con tutti itentativi fatti ricevo una sfilza 
di errori di runtime. Qualcuno mi potrebbe indirizzare sui passaggi da fare 
o non ne esco?. Un ultima cosa se strutturo questa situazione in modo che 
passi i valori alla funzione che poi possa calcolare il barcode (e il check 
digit) è conveniente ? Grazie per tutti i consigli in anticipo.
Fabio.

Defresco ha scritto:

Ciao Fabio, per fare ciò che chiedi io agirei così: costruisco una maschera con controlli non associati che riempio con i dati che mi interessano. Appena esci da una casella, puoi leggerne il valore con VALUE (es TuaCasella.value). Con un tasto 'aggiungi' scateni l'evento click con cui leggi la maschera, contruisci la stringa che tiserve per passarla poi alla tua funzione per il check digit. Ora con un SQL INSERT VALUES accodi i tuoi dati alla tabella che li deve contenere e il gioco è fatto. Siccome la maschera contiene tutti controlli non associati (ossia il record non lo scrivi direttamente), puoi fare tutti i cek che vuoi sull'inserimento. Quando è corretto, scateni l'evento click.
Spero di esserti stato utile
Ciao
-- 
Questo articolo e` stato inviato dal sito web 
http://www.nonsolonews.it

 ha scritto nel messaggio 
news:g1d1i1$2se$1...@news.nonsolonews.it...

Ciao,
ti ringrazio per il consiglio mi sembra davvero buono solo dovresti avere un 
pochino di pazienza perchè mi sono reso conto che le mie conoscenze legate a 
visual basic risentono di una certa inefficacia in VBA e di totale inutilità 
in ADO. Io farei più o meno così:
(correggimi se sbaglio) costruisco una maschera da usare esclusivamente per 
l'inserimento dei dati
1 creo la maschera non associata
2 da codice mi preparo a gestire il recordset
3 da codice creo le variabili stringa per i campi
4 scrivo una funzione per validare i campi e un ciclo per estrarre e 
preparare i dati (da inviare aalla funzione barcode)
5 ottenuto il risultato del codice preparo la mia "insert into table" e 
scarico il recordset
ci sono oppure ho messo in fila una serie di sciocchezze senza precedenti? 
Sto cercando di aggiornare le mie conoscenze e capire bene la proceedura mi 
aiuterà a progettare il codice in modo affidabile. Poi scusa una ulteriore 
domanda, per fare in modo che possa richiamare e formattare il codice sul 
report con un barcode font (code39) la funzione devo associarla al report?
Grazie in anticipo per i consigli. A presto.
Fabio.

Defresco ha scritto:

Se ti fidi dei miei consigli sei proprio alla frutta.....no scherzo!!
Io uso DAO invece di ADO ma tanto la procedura è la stessa. Fai una copia della maschera che usi per visualizzare i dati (singola ovviamente), togli da tutti i campi l'origine record ed ecco che hai la maschera non associata (invece che rifarla!). Imposta la maschera con consenti modifiche = si e consenti aggiunte = no.
Ora :
1 l'utente inserisce tutti i dati che vuole
2 sul bottone inserisci scrivi una cosa tipo "INSERT INTO tuatabella (campo1,campo2...) VALUE ('" & me.casella1.value & "','" & me.casella2.value & "',...." (campo1 DEVE corrispondere a casella1.value) dopo aver fatto tutti i controlli che vuoi sulla form (campi obbligatori, valori predefiniti e coerenti, mail, numeri...quello che ti serve). Il record è inserito. Non hai bisogno di recordset ne di cicli. Solo un requery finale per aggiornare la maschera che ti visualizzerà ciò che hai inserito.
Dentro la query di inserimento lanci la tua funzione (call TuaFunzioneCheckDigit(tuoValore)) per il campo che identifica il codice a barre.
Per quanto riguarda il codice a barre, in verità (se usi un carattere per la stampa) dovrebbe essere sufficente disporre di tale font e imputare la casella di testo del report contenente in codice (che è una sequenza di caratteri) con il font barcode. In teoria dovrebbe fare tutto lei....ma ti sapro dire di più i prossimi giorni. Sto proprio tentando di generare il barcode da Access senza usare librerie esterne per un altro lavoro che devo terminare.
Ciao e se incontri problemi dillo che pian pianino si risolve tutto (o quasi!!)


 ha scritto nel messaggio 
news:g1fg80$uhu$1...@news.nonsolonews.it...

Rieccomi,
sto facendo alcuni test seguendo i consigli che mi hai dato, ho pronta la 
maschera non associata, ancora non perfettamente funzionante, mi sorge però 
un dubbio: il campo contatore? Ovvero come mantengo l'autoincremento di ciò 
che potrebbe essere un campo ID piuttosto che un NumeroScheda ?
Ultime cose prima dei saluti, il dato inserito lo prendo per elaborarlo e 
passarlo alla funzione con Dato=!Me.nomecampo.text ?
Per finire è solo una sciocchezza ma devo saperlo, se volessi poter fornire 
un archivio con una struttura molto simile, posso vendere il file mdb (sono 
altri problemi futili, ma mi serve capire il meccanismo) Grazie mille e a 
presto.