Discussione:
copiare valore casella testo in maschera a campo tabella
(troppo vecchio per rispondere)
Domenico71213
2015-12-10 20:55:45 UTC
Permalink
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
2015-12-10 22:28:15 UTC
Permalink
Questo messaggio potrebbe essere inappropriato. Clicca per visualizzarlo
Domenico71213
2015-12-10 23:39:23 UTC
Permalink
Post by Vittorio
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
Dim lngTtotalebolla as Double
lngTotalebolla = me!txtTotalebolla
CurrentDb.Execute "INSERT INTO [movimenticaricoscarico]
(.......,CampoTotalebolla ,.......) VALUES (" &
".....,&lngTotalebolla&","........&")",dbFailOnError
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
2015-12-11 11:07:49 UTC
Permalink
Post by Domenico71213
Post by Vittorio
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
Dim lngTtotalebolla as Double
lngTotalebolla = me!txtTotalebolla
CurrentDb.Execute "INSERT INTO [movimenticaricoscarico]
(.......,CampoTotalebolla ,.......) VALUES (" &
".....,&lngTotalebolla&","........&")",dbFailOnError
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 Sub
MsgBox Err.Description
Resume Exit_Comando21_Click
End Sub
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)"
DoCmd.Close

Exit_Comando21_Click:
Exit Sub

Err_Comando21_Click:
MsgBox Err.Description
Resume Exit_Comando21_Click

End Sub
Vittorio
2015-12-11 13:31:36 UTC
Permalink
"Domenico71213" ha scritto nel messaggio news:e6b771c4-872c-4121-9e20-***@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
DoCmd.Close

Exit_Comando21_Click:
Exit Sub

Err_Comando21_Click:
MsgBox Err.Description
Resume Exit_Comando21_Click

End Sub
Domenico71213
2015-12-11 17:04:53 UTC
Permalink
Post by Vittorio
<<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 s As String
s = "INSERT INTO [movimenticaricoscarico] (Totalebolla) VALUES (" &
Str(Me!valorebolla) & ")"
CurrentDb.Execute s
DoCmd.Close
Exit Sub
MsgBox Err.Description
Resume Exit_Comando21_Click
End Sub
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
2015-12-11 20:20:43 UTC
Permalink
<"Domenico71213" ha scritto nel messaggio news:e54704ed-bbb3-4f58-ac6d-***@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
2015-12-11 22:02:12 UTC
Permalink
"Domenico71213" ha scritto nel messaggio news:e54704ed-bbb3-4f58-ac6d-***@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
2015-12-11 22:20:52 UTC
Permalink
Post by Vittorio
<<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.
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
2015-12-12 01:40:38 UTC
Permalink
"Domenico71213" ha scritto nel messaggio news:c2163058-3237-4703-86cd-***@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
2015-12-12 11:52:22 UTC
Permalink
Questo messaggio potrebbe essere inappropriato. Clicca per visualizzarlo
Domenico71213
2015-12-12 12:16:16 UTC
Permalink
Post by Domenico71213
<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
s = "UPDATE [movimenticaricoscarico] SET Totalebolla=" & Str(Me!valorebolla)
& " where IDMOVIMENTICARICOSCARICO=" & Str(Me!idmovimenticaricoscarico)
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
********************************************************************
* 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
2015-12-12 12:56:58 UTC
Permalink
"Domenico71213" ha scritto nel messaggio news:90a28076-9bfd-4f3b-a66e-***@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
2015-12-12 15:17:32 UTC
Permalink
Post by Vittorio
<<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
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
a***@gmail.com
2019-12-09 17:35:05 UTC
Permalink
Ciao Vittorio,
ho un problema analogo che non riesco a risolvere, cioè su due Maschere ho dei valori numerici da copiare in altrettante posizioni.

VALORE1
Ho una Maschera1 che contiene un campo TOTALE che deve essere copiato nella Tabella1 sul campo IMPORTO legata alla marchera

VALORE2
Ho una Maschera1 con una sottomaschera1 a sua volta un'altra sottomaschera2
nella sottomaschera2 sul piè di pagina ho un campo TOTALE che deve essere copiato dentro il campo COSTO della sottomaschera1

ti ringrazio in anticipo

Continua a leggere su narkive:
Loading...