Newsgroup: it.comp.appl.access
Titolo: Associare articoli ai clienti

 > 2-Uno (Tabella Articoli) a Molti (Tabella Dettaglio)
In una tabella che l'o nominato (CodMag_ordini), Importo dati da un file di
testo( da un lettore), nel campo denominato "CodMag" e da questa tabella  ho
fatto una sottomaschera. Ho fatto un altra sottomaschera Con una( Query
Dettagli ordini),con i relativi campi, quest'ultimo è collegato con i campi
mastre "Id ordine "alla maschera ( Ordini) . la domanda è questa: come
faccio ad associare gli articoli (Cioè i codici di articoli precedentemente
importati nel campo" Codmag" ) ad un "Id Ordine" del cliente che è già
presente nella (Query Dettagli Ordini)??
oppure sto sbagliando del tutto...
Grazie dell'aiuto
N.B. se sono troppo fuori strada vi sarò grato se mi spiegate come è la
strada giusta??

 ha scritto nel messaggio 
news:jxTIh.11697$o%.6676@tornado.fastwebnet.it...

(se ho capito bene)
Basta inserire il Codmag nella tabella [Tabella Dettaglio Ordini]...
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio
news:et305s$qoc$1...@tdi.cu.mi.it...

Inanzitutto grazie,
il campo " Cod Mag "è già esistente nella [Tabella Dettaglio Ordini], e da
una query e subform riesco anche a associare l'articolo ( cioè CodMag ), al
"ID ordine" del cliente . In pratica io vorrei importare i dati nel campo
"codMag"  di [Codmag_Ordini], che poi corrisponda a CodMag di [Tabella
Dettaglio Ordini]. per due ragioni:
1- non riesco a importare dati nel campo CodMag [Tabella Dettaglio Ordini],
poi non vorrei trovare dei conflitti con i controlli che ho nella
sottomaschera.
2- mi sembra più  lineare scaricare dati in una tabella separata poi
associarlo all' Id Ordine del cliente.
 questa Tabella [CodMag_Ordini] l'o messa in relazione 1 a 1 con [dettagli
ordini], non so se questo è giusto?
e secondo te in quale punto deve essere inserito [Tabella CodMag_Ordini] , e
con quale ralazione??
- La soluzione migliore secondo te, a risolvere questo problema quale? (
cioè associare codice articolo al Numero ordine cliente) senza troppi
inghippi!?
spero di essere stato chiaro, e di non farti venire mal di testa.

 spero di essere stato chiaro, e di non farti venire mal di testa.
Al tuo buon cuore...
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio
news:et3ino$hv2$1...@tdi.cu.mi.it...

 Tutta questa operazione io lo fatta, (cioè a trovare ed  associare articoli
all' ID ordine del cliente ecc.. fino qui tutto è andato liscio). il
problema è iniziato da quando non sono riuscito ad importare i dati da un
file di testo( scaricato da lettore che presentano codici di articoli) nel
campo "Codmag" di[ Dettagli Ordini], per  fare la stessa operazione , e
quindì associarlo con "id Ordine". Quindì  ho pensato di importarli in un
altra tabella , qui sono riuscito a importarli ma non ho potuto versarli in
campo "codmag" di dettagli...
     Come posso fare a collegare campo "codmag " di tabella [Codmag_Ordini],
ad il  campo "Codmag " in [dettagli ordini] in modo che se scarico una serie
di dati nella [Codmag Ordini]  risuli gli stessi dati nel campo "Codmag" di
[dettagli ordini] ?
Grazie ancora e scusa per mal di testa.

 Grazie ancora e scusa per mal di testa.
Scusa Mash (mai nick fu così appropriato), ma non capisco dove sia l'impedimento.
Prima dici che non riesci ad importalo, poi lo importi... C'è qualcosa che mi sfugge.
(facciamo a capirci) Per me (per come la vedo) CodMag è il codice di un articolo e non è associabile ad un idOrdine.
Magari con un esempio mi spiego meglio:
[Ordini]
- id, contatore, indicizzato sì (duplicati non ammessi)
- idCliente, numerico, intero lungo,
- numeroOrdine
- dataOrdine
- etc. etc.
[OrdiniDettagli]
- id, contatore, indicizzato sì (duplicati non ammessi)
- idOrdine, numerico, intero lungo
- codMag
- quantita
- costoUnitario
Il codMag lo dovevi importare in OrdiniDettagli; ovviamente devi prima creare il record "Padre" in Ordini altrimenti la relazione 
tra i record va a farsi friggere.
Quindi (per esempio); crea un bottone, sulla maschera principale (associata a Ordini), che fa l'importazione dei codmag in 
OrdiniDettagli. La query di accodamento dovrà contenere anche il campo idOrdine che avrà il valore dell'id creato in Ordini.
Come lo importi/leggi il file di testo?
Ciao.
-- 
Sergio MAZZA 

 Come lo importi/leggi il file di testo?
Lo provato ma non riesco a far accodare in tabella [Detagli ordini], il
valore del campo"[Id Ordine] di ordini mahhhh dovrei riprovare.
Ciao
Shari

 Come lo importi/leggi il file di testo?
col Docmd.transfertxt... importo da file .txt nel unico campo " CodMag" di
tabella (CodMag_Ordini).
Una domanda: La tabella (CodMag_ Ordini) deve essere in qualche modo in
relazione con qualche tabella o no?
Ciao
Shari

 Shari
Ciao.
-- 
Sergio MAZZA 

 Se il file .txt contiene solo l'elenco dei codmag...
 Ciao Sergio
Nel form Ordini un campo di IdOrdine c'č, ed anche nella sottomaschera
[dettagli Ordini query ] c'č, e se io aggiorno Codmag, si aggiorna in
automatico anche il campo IdOrdine perchč e collegato con i campi master e
figlio alla form ordini. fino a questo punto non ci sono problemi perchč
gli inserisco uno ad uno.
 Poi il codice Vba lo inserito come mi avevi suggerito... funziona, ma perň
mi importa solo la prima riga del file di testo e se premo il bottone
nuovamente mi ripete lostesso numero (di articolo ) in CodMag
alla fine su seguente riga mi dŕ errore mi s che ci vuole solo & senza " ":
  >     msgbox err.number & " " & application.accesserror.(err.number)
Ma questo non č importante
 Alla fine penso che se riesco a collegare questi due campi "codmag" in
[CodMag_Ordini] e "Codamg" nella [sottomaschera dettagli ordini] la cosa
diventi piů semplice che ne dici?
Ma una domanda Banale come fanno gli altri applicativi ?? importano il file
di testo scaricato dal lettore in una  tabella di applicazione, e accodano
alla tabella dettagli ordini? cioč vorrei sapere la strada maestra quale?
Grazie
Ciao Sergio

 Ciao Sergio
Ciao.
-- 
Sergio MAZZA 

 Ma forse mi sfugge qualcosa...
dalla sottomaschera riesco a creare un record "IdOrdine" ma  se nella
tabella[ dettagli ordini] inserisco un record, non so perchè mi dà messagio
Key violation.
  Grazie
Ciao Sergio

 Key violation.
Incolla la struttura delle tabelle Ordini e OrdiniDettagli, indicando il 
tipo dei campi...


 tipo dei campi...
[Ordini]
- ID_Ordine, contatore, indicizzato sì (duplicati non ammessi)
- id_Cliente, numerico, intero lungo,
- Mod_Pag
- dataOrdine
- etc. etc.
[OrdiniDettagli]
- id_Dettagli_Ordini, contatore, indicizzato sì (duplicati non ammessi)
- ID_Ordine, numerico, intero lungo, indicizzato sì (dupplicati ammessi)
- codMag,
- Quantita
- Unità_Prz
Tipo relazione :[Ordini]1<------>molti[Dettagli ordini] integrità
referenziale,Aggiorna campi correlati e elimnina campi correlati
Grazie
 Ciao
Shari

 Shari
Ovviamente la CurrentDb.Execute deve essere eseguita quando Me.ID_Ordine è 
diverso da Null.
Quindi riassumendo:
(su maschera principale Ordini)
- crei un bottone "Importa Ordini) con il codice:
'---
if me.dirty the me.refresh '<-- scrivo il record
    CurrentDb.Execute "insert into [Dettagli Ordini] (ID_Ordine, codMag) 
Select " &
Me.ID_Ordine & " as ID_Ordine, CodMag From articoli"
end if
'---
Ciao.
-- 
Sergio MAZZA 

Ciao
ma mi sa che a Vb non piace proprio "Insert into" sempre mi dà errore ci
provo dal access in una query.
poi domando: se le relazioni sono giuste perchè se alla fine di una riga
premo sul tasto barra spazio ( per sbaglio)mi crea un nuovo record  sia nel
[Dettagli ordini] che tabella articoli magazzino, che sempre chiamato
CodMag?
 grazie

 ha scritto nel messaggio
news:ziGLh.14277$6.1...@tornado.fastwebnet.it...

E tutto il resto del messaggio o parte di esso (chiamato QUOTING) che
permette di capire la storia precedente?
Antonio

 ha scritto nel messaggio 
news:ziGLh.14277$6.1...@tornado.fastwebnet.it...

Per prima cosa dai retta ad Antonio; lascia, sempre, almeno la parte 
significativa del testo del messaggio al quale stai rispondento (come sto 
facendo io), altrimenti si perde la bussola.
Seconda cosa; dovresti specificare il messaggio di errore altrimenti non 
riesco a capire come intervenire.
Non è che per caso hai creato dei nomi inserendoci lo spazio, tipo id 
ordine?
Ciao.
-- 
Sergio MAZZA 

"Antonio Biso" <ch...@NOSPAMetruria.net> ha scritto nel messaggio
news:eYNLh.27596$J11.6...@twister1.libero.it...

 Pensavo che invece di fare chiarezza crei confusione. hai perfettamente
ragione.

 --
  Ciao Sergio
  Hai ragione. ho riportato il messaggio precedente qui sopra.
per il secondo ho controllato tutto anchè gli spazi. Il nome campo inserisco
sempre senza spazio(ID_Ordine) il messaggio è il numero di messaggio errore
(3134).
Una Parentesi : il codice che mi avevi accennato pochi post fa:
[on error goto errori
if not insull(me!id) then
    dim tmp_codMag as string
    open "nomeFile.txt" for input as 1
        input #1,tmp_codMag ....
........],
mi funzionava solo che mi importava la prima riga, e pensavo se potessimo
modificarlo un pò forse funzinerebbe. A me sembra che il variabile string
deve essere cambiato, in modo che non solo memorizzi la prima riga, ma tutta
la colonna di dati. Chiuso la parentesi.
Ciao e ancora grazie

 Ciao e ancora grazie
Quindi sei più orientato con l'utilizzo dell'Open.
Guarda, francamente non mi viene in mente perché si ferma alla prima riga; 
copia/incolla il contenuto del file di testo (qualche riga)...
Ciao.
-- 
Sergio MAZZA 


Ciao sergio
No.., cerco una soluzione piů immediata e logica sopratutto, ho visto che
questa soluzione che č veloce oltre che logico...
Le righe del file di testo sono composte cosě :
1290125
1635698
123589
1835622
...........
Questo puň essere una colonna di centinaia di righe.
a seconda di preferenza a capo di questa colonna posso mettere (Codmag o un
altro nome...  come Cod_articolo) come intestazine di colonna .
Ciao e Buon Anno 2586

 Ciao e Buon Anno 2586
Che sei cinese?
Buon Anno anche a te!
Ciao.
-- 
Sergio MAZZA 

 Ciao e ancora grazie
Scusa, ti ho fatto perdere tempo.
Nel codice che legge il file di testo manca l'iterazione, fino alla fine del 
file, della lettura dei record; il codice modificalo cosě:
'---
on error goto errori
if not insull(me!id) then
    dim tmp_codMag as string
    open "nomeFile.txt" for input as 1
    Do While Not EOF(1)
        input #1,tmp_codMag
        if tmp_codMag <> "Cod_articolo" then
            me!nomeSottomaschera.form.recordset.addnew
            me!nomeSottomaschera.form.recordset!idOrdine = me!id
            me!nomeSottomaschera.form.recordset!codMag = tmp_codmag
            me!nomeSottomaschera.form.recordset.update
        end if
    loop
    close 1
    me!nomeSottomaschera.form.requery
end if
exit sub
errori:
    if freefile()>0 then
        close
    end if
    msgbox err.number & " " & application.accesserror.(err.number)
'---

 '---
Oh grazie.. Ci voleva proprio questo. Ti ringrazio