Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Programmazione Visual Basic Access 97.

34 views
Skip to first unread message

Giuseppe

unread,
Aug 21, 2004, 8:14:54 AM8/21/04
to
Per favore aiutatemi a scrivere la routine per risolvere questo problema:

in modalità inserimento dati in tabella da maschera corrente con
sottomaschera, selezionando uno solo di tre valori (testo) presenti in una
tabella con tre campi e richiamati con una casella combinata nella
sottomaschera, si deve attivare un evento che mi deve aggiornare un
determinato campo (testbox "Note") presente nella maschera principale con l'
inserimento di una stringa di testo standard che sarà presente nelle righe
di codice, e con l'apparizione di una MsgBox che avvisa sull'aggiornamento
di tale campo. Sono uno smanettane con poche conoscenze sulla programmazione
VB for Appl. Quella che segue è una routine evento già presente in una
maschera di caricamento dati in una sola tabella, senza sottomaschera e
tutto fila liscio senza errori:

Private Sub Esito_BeforeUpdate(Cancel As Integer)

If Me![Esito] = "CERTIFICATO POSITIVO" Then

[Note] = [Note] & " " & "NEGATIVA: AL CASELLARIO GIUDIZIALE RISULTANO
ISCRITTI PROVVEDIMENTI. "

MsgBox "ATTENZIONE! Controllare il campo NOTE."

End If

End Sub

--------------------------

La stessa routine applicata al caso descritto sopra mi genera un errore di
compilazione. Il problema credo sia dovuto al fatto che l'evento si attiva
dal controllo presente nella sottomaschera, mentre l'aggiornamento dati è
previsto con l'accesso ai dati del controllo (campo "Note" ) nella maschera
principale. La sottomaschera e collegata ad una tabella (SOCI), mentre la
maschera principale e collegata ad un'altra tabella (IMPRESE), poste in
relazione con la chiave primaria, che contiene il campo da aggiornare.

Vi sono grato per tutto l'aiuto che mi date, anche con qualche commento del
codice che mi aiuterà meglio a capire la procedura evento.
Saluti.


Carlo Costarella

unread,
Aug 21, 2004, 9:22:46 AM8/21/04
to

"Giuseppe" <giusep...@tiscali.it> ha scritto nel messaggio
news:cg7ecp$n2g$1...@lacerta.tiscalinet.it...

If
Forms![NomeMascheraPrincipale]![NomeMascheraSecondaria].Form![TuaComboInSott
omaschera] = "QuelloCheDiciTu" then

Forms![NomeMascheraPrincipale]![Note] = "QuelloCheVuoiTu"

MsgBox "ATTENZIONE! Controllare il campo NOTE."

End If

Ciao, Carlo


Giuseppe

unread,
Aug 21, 2004, 10:26:58 AM8/21/04
to
Grazie per la dritta. Quella che vedi è la routine evento costruita con le
tue indicazioni.

Private Sub Esito_BeforeUpdate(Cancel As Integer)

If Forms![Inserimento IMPRESE]![S_soci].Form![Esito] = "CERTIFICATO
POSITIVO" Then
Forms![Inserimento IMPRESE]![Note] = "NEGATIVA: AL CASELLARIO GIUDIZIALE


RISULTANO ISCRITTI PROVVEDIMENTI."
MsgBox "ATTENZIONE! Controllare il campo NOTE."
End If

End Sub
------------
Ho fatto la prova con il debug e mi da questo messaggio di errore:
Errore di run-time "2465":
Impossibile trovare il campo "S_soci" a cui si fa riferimento
nell'espressione".
Il nome di campo è errato oppure il campo è stato rinominato o eliminato.
Scusa perchè dice il campo "S_soci" ? Questo non è un campo ma è il nome
della sottomaschera che contiene la combobox in cui io scelgo l'opzione
"CERTIFICATO POSITIVO". Quando seleziono questa stringa si dovrebbe attivare
l'evento che mi aggiorna il campo "Note" nella maschera principale
"Inserimento IMPRESE".
C'è qualcosa di sbagliato nel codice e questo fa generare l'errore ?
Grazie per la tua cortesia.
Giuseppe.


"Carlo Costarella" <carloantoni...@virgilio.it> ha scritto nel
messaggio news:G0IVc.167063$5D1.8...@news4.tin.it...

Carlo Costarella

unread,
Aug 22, 2004, 12:59:35 AM8/22/04
to

"Giuseppe" <giusep...@tiscali.it> ha scritto nel messaggio
news:cg7m4h$rpf$1...@lacerta.tiscalinet.it...

Ciao Giuseppe, ti ricordo di scrivere le risposte DOPO i precedenti
messaggi.

Per il tuo problema posso solo dirti di controllare bene il nome della
sottomaschera, la sintassi è giusta.
Ma si tratta proprio di una sottomaschera? Non è che parliamo di una
struttura a schede?
In modalità struttura fai click col tasto destro sulla sottomaschera e
scegli proprietà.
In "Nome Elemento" leggi il nome attribuito. Se ci sono degli spazi nel
nome, nel codice, metti questo nome tra parentesi quadre:
[TuoNome Maschera].

Ciao, Carlo


Giuseppe

unread,
Aug 23, 2004, 7:10:10 PM8/23/04
to

"Carlo Costarella" <carloantoni...@virgilio.it> ha scritto nel
messaggio news:XKVVc.132157$OR2.6...@news3.tin.it...

Grazie a te ho risolto il problema. Comunque preciso che si tratta di una
sottomaschera in maschera principale.
Il problema era proprio lì nella proprietà della sottomaschera alla voce
"Nome elemento". Anzichè esserci "S_soci"
c'era questo: "SottoSchedaSoci". Con questo attributo la sottomaschera non
veniva vista dalla routine evento generando appunto l'errore di run-time. Ho
fatto la prova e va tutto bene, fa esattamente quello che volevo.
Mille grazie e a risentirci al prossimo problema.


0 new messages