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

copiare valore casella testo in maschera a campo tabella

1,703 views
Skip to first unread message

Domenico71213

unread,
Dec 10, 2015, 3:55:46 PM12/10/15
to
Aiuto non riesco a risolvere...ho una tabella con una serie di campi , la tabella si chiama movimenticaricoscarico.
questi campi sono tutti già con i dati tranne uno.... totalebolla

I campi di detta tabella vengono visualizzati in una maschera che si chiama movimenticaricoscarico
In questa maschera oltre ai campi con tutti i valori della tabella ho una casella di testo totalebolla in cui c'è un operazione di somma

vorrei che il valore dell'operazione di somma fosse trascritto nella tabella movimenticaricoscarico nel relativo campo(totalebolla)

a video tutto funziona perfettamente quando mi sposto tra i record, il valore calcolato appare correttamente per ogni record nella relativa casella(totalebolla) ma quando vado a guardare nella tabella non c'è nulla

premetto che uso access 2013 e non sono praticissimo sto cercando di imparare

grazie

Vittorio

unread,
Dec 10, 2015, 5:28:16 PM12/10/15
to


"Domenico71213" ha scritto nel messaggio
news:06114861-16e2-4ed4...@googlegroups.com...


Serve un'istruzione SQL per memorizzare il contenuto della textbox dentro
ad un campo della tabella.
Quando salvi la maschera dovresti avere associato al pulsante SALVA un
codice simile al seguente( analogamente a quanto accade per tutte le altre
caselle di testo) :


Dim lngTtotalebolla as Double

lngTotalebolla = me!txtTotalebolla

CurrentDb.Execute "INSERT INTO [movimenticaricoscarico]
(.......,CampoTotalebolla ,.......) VALUES (" &
".....,&lngTotalebolla&","........&")",dbFailOnError



Domenico71213

unread,
Dec 10, 2015, 6:39:24 PM12/10/15
to
ciao vittorio ho fatto cosi ma sicuramente avrò sbagliato per già quando la inserisco mi da errore di cmpliazione prevista fine istruzione se la eseguo mi da errore di comiplazione variabile non definita

che dici dove sbaglio? ti ripeto sto iniziando ora a imparare qualcosa

Private Sub Comando21_Click()
On Error GoTo Err_Comando21_Click
Dim lngTtotalebolla As Double

lngtotalebolla = Me!txttotalebolla

CurrentDb.Execute "INSERT INTO [movimenticaricoscarico]
(.......,CampoTotalebolla ,.......) VALUES (" &
".....,&lngTotalebolla&","........&")",dbFailOnError

DoCmd.Close

Exit_Comando21_Click:
Exit Sub

Err_Comando21_Click:
MsgBox Err.Description
Resume Exit_Comando21_Click

End Sub

Domenico71213

unread,
Dec 11, 2015, 6:07:51 AM12/11/15
to
aggiornamento, c'era qualche virgoletta in più ho riscritto leggendo un pò quà e là sull'istruzione insert into e modificato alcuni nomi ,diffrenziando nome campo e nome casella

la casella della maschera ora si chiama valorebolla, il campo tabella sempre totalebolla

non mi dà errori di istruzioni , ma mi dice parametri insufficienti previsto 1 ....aiuto

Private Sub Comando21_Click()
On Error GoTo Err_Comando21_Click
Dim lngvalorebolla As Double

lngvalorebolla = Me!valorebolla


CurrentDb.Execute "INSERT INTO [movimenticaricoscarico] (Totalebolla) VALUES (lngvalorebolla)"

Vittorio

unread,
Dec 11, 2015, 8:31:37 AM12/11/15
to


"Domenico71213" ha scritto nel messaggio
news:e6b771c4-872c-4121...@googlegroups.com...

<<non mi dà errori di istruzioni , ma mi dice parametri insufficienti
previsto 1 ....aiuto

prova così :



Private Sub Comando21_Click()
On Error GoTo Err_Comando21_Click

Dim s As String
s = "INSERT INTO [movimenticaricoscarico] (Totalebolla) VALUES (" &
Str(Me!valorebolla) & ")"
CurrentDb.Execute s

Domenico71213

unread,
Dec 11, 2015, 12:04:54 PM12/11/15
to
allora..innanzitutto grazie non sapevo più cosa cambiare nell'istruzione............così funziona ed inserisce il valore della casella valorebolla nel campo totalebolla della tabella movimenticarico scarico.
Il problema è che crea un nuovo record io vorrei invece che aggiornasse il record esietente
il record lo richiamo con una casella combinata con origine riga su una query fatta sulla tabella in questione cioè movimenticarico scarico il cui campo chiave è idmovimenticaricoscarico (la maschera è movimenticaricoscarico)

mi sta venendo il dubbio ma si può fare? sigh sigh

Vittorio

unread,
Dec 11, 2015, 3:20:43 PM12/11/15
to


<"Domenico71213" ha scritto nel messaggio
news:e54704ed-bbb3-4f58...@googlegroups.com...
<il record lo richiamo con una casella combinata con origine riga su una
query fatta sulla tabella in questione
< cioè movimenticarico scarico il cui campo chiave è
idmovimenticaricoscarico (la maschera è movimenticaricoscarico)




Dovresti cercare di accedere al codice VBA di quella maschera( che credo
serva per INSERIRE O MODIFICARE RECORD) , dovresti trovarci l'istruzione
UPDATE anzichè INSERT : in tale istruzione UPDATE aggiungi il nuovo campo
da salvare totalebolla insieme agli altri già presenti.

Se non trovi il codice , prova a scrivere una nuova query di aggiornamento
,l'istruzione SQL sarà più o meno così:

s = UPDATE [movimenticaricoscarico] SET Totalebolla = Str(Me!valorebolla)
WHERE idmovimenticaricoscarico = "Me!casella di Testo con l'ID "

CurrentDb.Execute s

Vittorio

unread,
Dec 11, 2015, 5:02:12 PM12/11/15
to


"Domenico71213" ha scritto nel messaggio
news:e54704ed-bbb3-4f58...@googlegroups.com...

<<Il problema è che crea un nuovo record io vorrei invece che aggiornasse il
record esietente

Chiaramente se il tuo database usa i recordset per gestire tutti i campi
della tabella associati ai controlli della maschera (caselle di testo etc..)
come avviene per il database di esmpio northwind , allora è sufficiente
aggiungere la nuova casella di testo alla maschera, associarla all'origine
riga che sarà il nuovo campo creato nella tabella del database.

Domenico71213

unread,
Dec 11, 2015, 5:20:53 PM12/11/15
to
non posso farlo(credo) perchè l'origine della casella di testo della maschera movimenticaricoscarico (che ho chiamato valorebolla come sai), è questa =[DETTAGLIOMOVIMENTOCARICOSCARICO Sottomaschera].[Form]![testo23]

in pratica la somma di tutti i record della sottomaschera dettagliomovimento caricoscarico(testo23 è la casella della sottomaschera dove c'è appunto il totale delle righe)

al codice che mi hai suggerito

s = UPDATE [movimenticaricoscarico] SET Totalebolla = Str(Me!valorebolla)
WHERE idmovimenticaricoscarico = "Me!casella di Testo con l'ID "
CurrentDb.Execute s

ho inserito le virgolette all'istruzione update che mi è sembrato di capire necessarie e sostituito "casella di testo con l'ID" con IDMOVIMENTICARICOSCARICO che è il nome della casella di testo che contiene l'ID

facendo così non mi da più errori di sintassi ma in esecuzione


Private Sub RICERCAXBOLLAFATT_Change()

Dim s As String

s = "UPDATE [movimenticaricoscarico] SET Totalebolla=Str(Me!valorebolla)"

where IDMOVIMENTICARICOSCARICO = "Me!idmovimenticaricoscarico "

CurrentDb.Execute s
End Sub


mi dice errore di compilazione sub o function non definita..................

Vittorio

unread,
Dec 11, 2015, 8:40:40 PM12/11/15
to


"Domenico71213" ha scritto nel messaggio
news:c2163058-3237-4703...@googlegroups.com...

<facendo cosě non mi da piů errori di sintassi ma in esecuzione

<Private Sub RICERCAXBOLLAFATT_Change()

<mi dice errore di compilazione sub o function non
definita..................



RICERCAXBOLLAFATT che controllo č, una casella di testo?

Non avevi inserito il codice in nell'evento click di un pulsante Sub
Comando21_Click() ?

Inoltre prova a riscrivere la stringa cosě se ti desse errore sul numero dei
parametri:

s = "UPDATE [movimenticaricoscarico] SET Totalebolla=" & Str(Me!valorebolla)
& " where IDMOVIMENTICARICOSCARICO=" & Str(Me!idmovimenticaricoscarico)




Domenico71213

unread,
Dec 12, 2015, 6:52:24 AM12/12/15
to
comando21 era il pulsante di uscita dalla maschera dove avevo messo la routine di insert

ora invece il codice con update l'ho scritto nella casella combinata RICERCAXBOLLAFATT all'evento su modifica in modo da come ho immaginato una volta che il valore della casella di testo valorebolla viene aggiornato si attiva la routine di aggiornamento della tabella movimenticarico scarico con l'aggiornamento del record corrispondente ricavato dalla casella di testo IDMOVIMENTICARICOSCARICO


cmq stanotte ho fatto cosi ho azzerato tutto salvando solo le tre tabelle e ripartendo da zero

prodotti
movimenticaricoscarico
dettagliomovimenticaricoscarico

ti elenco i campi principali
prodotti:idprodotto,codice articolo,descrizione
movimenticaricoscarico:idmovimenticaricoscarico,data,numerobolla,totalebolla

dettagliomovimenticaricoscarico:idmovimenticaricoscarico,Iddettagliomovimenticaricoscarico,codice_articolo,quantitàdicarico,
costonetto
la maschera principale si chiama movimenticaricoscarico e ha origine dalla query sulla tabella movimenticaricoscarico
all'interno della maschera ci sono i campi relativi alla tabella in più ho aggiunto una casella di testo che si chiama valorebolla il cui contenuto è in pratica la somma di tutti i record contenuti nella tabella dettagliomovimenticaricoscarico

dentro la maschera principale ho una sottomaschera dettagliomovimenticaricoscarico che ha origine da una query su prodotti e dettagliomovimenticaricoscarico


Nella parte superiore vedo quindi l'idmovimenticaricoscarico, la data ,il numero bolla(data e numerobolla inseriti da me)

nella sottomaschera vedo vari record ognuno con il proprio iddettagliomovimenticaricoscarico, codice_articolo , quantitàdicarico,costonetto (quantitàdicarico e costonetto inseriti da me)

Valorizzo ogni riga con la moltiplicazione (quantitàdicarico x costonetto) e alla fine di tutte le righe ho fatto una casella di somma che poi copio nella maschera principale in una casella che come sai si chiama valorebolla.
Per andare avanti nei record e fare una ricerca della bolla che mi interessa nella tabella principale movimenticaricoscarico uso una casella combinata chiamata ricercaxbollafatt .posizionata chiaramente nella maschera principale

tutto funziona perfettamente cerco con la casella combinata la bolla che mi interessa vedo la data vedo il numero di bolla (e altro chiaramente.. fornitore ecc ecc)
in basso vedo le righe che costituiscono la bolla ognuna con il proprio articolo, la quantità il costo unitario il costo totale e alla fine più in basso la valorizzazione della bolla (valorebolla)

ora il mio problema è questo vorrei che questo benedetto valore cioè valorebolla che è un valore calcolato al momento e rappresenta la somma di tutti i record della sottomaschera , venisse scritto nella tabella principale e cioè movimenticaricoscarico nel campo totalebolla , (per poi usarlo per farci altre cose...in realtà sto cercando di fare una maschera fattura acquisti dove richiamare ogni singola bolla ed a questo punto sarebbe facile visto che ho già la tabella movimenticaricoscarico solo che mi manca questa dannata valorizzazione)

ci sto perdendo veramente la testa











Domenico71213

unread,
Dec 12, 2015, 7:16:17 AM12/12/15
to
********************************************************************
* GRANDE *
* FUNZIONA-------FUNZIONA---- *
********************************************************************

ahimè...non avevo applicato la tua ultima correzione quando prima ho scritto ormai sfiduciato

invece funziona perfettamente l'unica cosa da sistemare è che devo vedere di inserirla in un evento diverso da modifica perchè essendo che all'apertura il valore della casella valore bolla è zero mi caccia l'errore Null poi alla seconda ricerca dove ormai nella casella valorebolla è apparso un valore diverso da zero inizia a funzionare tutto alla grande

è che purtoppo nel posto giusto dove dovrei mettere la routine cioè nell'evento dopo aggiornamento della casella combinata ricercaxbollafatt già ho un evento costituito da una vecchia macro.......ma questo credo che da solo riesco a risolverlo da solo(spero)

Ti ringrazio tantissimo per la pazienza

Vittorio

unread,
Dec 12, 2015, 7:56:59 AM12/12/15
to


"Domenico71213" ha scritto nel messaggio
news:90a28076-9bfd-4f3b...@googlegroups.com...

<<invece funziona perfettamente l'unica cosa da sistemare è che devo vedere
di inserirla in un evento diverso

prova l'evento LostFocus ( cioè Disattivato in italiano) , che avviene
quando il focus si sposta dal controllo verso un altro controllo

Domenico71213

unread,
Dec 12, 2015, 10:17:33 AM12/12/15
to
l'ho inserita in dopo aggiornamento della casella valorebolla e funziona perfettamente

grazie ancora

ora proseguo nel completamento di quello che mi ero prefisso di fare, creare una maschera collegata a una tabella fatture in cui andrò ad inserire una sottomaschera collegata a movimenticaricoscarico che a questo punto avrà grazie alla routine che mi hai insegnato memorizzato ogni rigo(cioè ogni bolla) completa di prezzo
Alla fine avrò come risultato una fattura di acquisti con il dettaglio di ogni singola bolla e il totale fattura
Message has been deleted
0 new messages