Newsgroup: it.comp.appl.access
Titolo: combo box inserimento dati-sincronizzate



Chi mi aiuta a risolvere questo problemino?

Ho una maschera denominata "materiali" in cui ho diversi campi
tra cui tre

caselle combinate: la prima ,"Descrizioni" che seleziona la tipologia
di

materiale e che prende i dati dalla tabella "Descrizioni" (i
cui campi sono

IDDescrizioni e Descrizione), la seconda denominata "Materiale"
che seleziona il

materiale e che prende i dati dalla "TabellaMateriali" (i cui
campi sono ID,

Materiale e IDDescrizioni) ed, infine, la terza "Sottomateriale"
che seleziona

una seconda tipologia di materiali e che prende i dati dalla

"TabellaSottomateriali" (i cui campi sono IDSotMat, Sottomateriale
e

IDDescrizioni).

La maschera inserisce i dati in una tabella denominata MATERIALI.

In ogni casella combinata, sulla proprietà "non in elenco" ho
inserito il

seguente codice:

Private Sub ..........._NotInList (NewData As String, Response As Integer)

Dim strsql As String, x As Integer

x = MsgBox ("Vuoi inserire questo valore nella lista?", vbYesNo)

If x = vbYes Then

    strsql = "Insert Into ........([........]) values
(' " & NewData & "')"

    'MsgBox strsql

    CurrentDb.Execute strsql, dbFailOnError

    Response = acDataErrAdded

Else

    Response = acDataErrContinue

End If

End Sub

in modo tale da poter non solo scegliere un valore ma anche di poterne

inserire di nuovi.... e tutto funziona.

Ora vorrei anche, ovviamente se possibile, sincronizzare le caselle

combinate in modo tale che selezionando una tipologia dalla casella

"Descrizioni" mi compaiano soltanto i materiali e i sottomateriali

corrispondenti a quella tipologia.

Ho già provato con alcuni esempi presi dal NewsGroup ma poi non funziona
il

codice descritto sopra.

Non sono un esperto di Access e tanto meno di codici VBA: prendo gli esempi

che trovo sul sito e cerco di applicarli.

Grazie sin da ora a tutti quelli che mi verranno in aiuto.
....ciao

 ha scritto nel 
  messaggio 
news:dn4472$b97$1...@balena.cs.interbusiness.it
...





Per prima cosa la 
  netiquette prevede che in un NG si posti in modalità testo e non in modalita 
  HTML.


 


Non ho capito se hai 
  letto sul Sito Comune, nella Sezione Forms queste due mie 
  FAQ:


 


1)
 
3.72 Sincronizzare in una maschera due o più caselle combinate 
  tra loro in gerarchia.


2) 3.77 Sincronizzare in una 
  maschera due o più caselle combinate ASSOCIATE tra loro in 
  gerarchia.


 


Se hai letto quelle due FAQ, cosa non ti è 
  chiaro?


Grazie sin da ora a tutti quelli che mi verranno in 
  aiuto.
....ciao


 


Prego


-- 
  
Roberto
-----------------------------------------------
il Sito 
  Comune di it.comp.appl.access
http://www.sitocomune.com
-----------------------------------------------





Grazie per la risposta.


Io avevo già provato ad applicare le
FAQ ma il problema è sempre lo stesso: quando vado ad inserire dei dati
nelle combo che non sono compresi nell'elenco access mi da il messaggio
"il testo non corrisponde ad una voce dell'elenco", mentre se
invece le combo non sono sincronizzate tutto va bene.


Io vorrei avere le combo sincronizzate
a cascata e che possano accettare dati non compresi nell'elenco.


Chiedo troppo?


n.b.: per la posta utilizzo Lotus notes.
Sai come fare per togliere l'HTML?


ciao



 ha scritto nel 
  messaggio 
news:dn72sf$omt$1...@balena.cs.interbusiness.it
...


Grazie per la risposta.
 
Io avevo già provato ad applicare le FAQ ma il problema 
  è sempre lo stesso: quando vado ad inserire dei dati nelle combo che non sono 
  compresi nell'elenco access mi da il messaggio "il testo non corrisponde ad 
  una voce dell'elenco", mentre se invece le combo non sono sincronizzate tutto 
  va bene.
 
Io vorrei avere le combo 
  sincronizzate a cascata e che possano accettare dati non compresi 
  nell'elenco.
 
Chiedo troppo?






No, non chiedi troppo se però 
  tratti separatamente i due problemi.


Per risolvere il problema della 
  sincronizzazione va bene quanto indicato nelle due FAQ indicate nel mio 
  messaggio precedente, mentre per risolver il problema di aggiungere una nuova 
  riga in elenco vai sul Sito Comune e nella Sezione Forms leggi la mia FAQ 
  intitolata "3.39 Si può aggiungere un record alla tabella che è origine riga 
  di una casella combinata senza usare una maschera?".


n.b.: per la posta utilizzo Lotus notes. 
  Sai come fare per togliere l'HTML?
 


Mi dispiace, ma non conosco Lotus 
  notes.


ciao
 




Mi dispiace disturbarti di nuovo ma
purtroppo non riesco a far funzionare il tutto.


Ho provato ad utilizzare le tue FAQ
come esempio ma, mentre separatamente funzionano benissimo, se cerco di
 conbinare le due cose ottengo sempre il medesimo risultato.


Siccome il mio db è simile alla tua
FAQ 3.77 (tranne che la  mia non è una maschera continua e ha tre
combo associate) ho provato ad applicare la  FAQ 3.39 alla FAQ 3.77
(con le opportune modifiche) ma quando provo ad aggiungere un nuovo dato
al campo "prodotto" mi da il messaggio: "errore di run-time
3201 - impossibile aggiungere o modificare il record. Nella tabella "categorie"
è necessario un record correlato" ed eseguendo il debug mi evidenzia
"miorst.Update" (che francamente non sò cosa significa) e chiudendo
questo compare il messaggio "il testo immesso non corisponde ad una
voce dell'elenco".


Puoi aiutarmi utilizzando sempre come
esempi le due FAQ accennate sopra? Io uso access 2000.


Grazie mille..............ciao

 ha scritto nel 
  messaggio 
news:dnlunk$6gt$1...@fata.cs.interbusiness.it
...





Come chiaramente indicato in calce 
  alla FAQ 3.39, visto che usi Access 2000, devi aggingere al database i 
  riferimenti a Microsoft DAO; tu lo hai fatto?


Grazie 
  mille..............ciao


 


Prego




ciao..........non sapendo dove andare ad inserire il riferimento
(perchè, ripeto, non sono un esperto di access ma applico, dove posso,
gli esempi che trovo sul sito comune o sui suoi link, ho sostituito il
tuo codice con il seguente:


Private Sub ..........._NotInList (NewData As String,
Response As Integer)

Dim strsql As String, x As Integer

x = MsgBox ("Vuoi inserire questo valore nella lista?", vbYesNo)

If x = vbYes Then

    strsql = "Insert Into ........([........]) values ('
" & NewData & "')"

    'MsgBox strsql

    CurrentDb.Execute strsql, dbFailOnError

    Response = acDataErrAdded

Else

    Response = acDataErrContinue

End If

End Sub


così facendo non ho più l'errore di run-time 3201 ma il
risultato non cambia: "il testo immesso non corrisponde ad una voce
dell'elenco".


Se preferisci posso rispiegarti tutto "per filo e
per segno"........


grazie per la pazienza


ciao

 ha scritto nel 
  messaggio 
news:dnmbk4$rbb$1...@carabinieri.cs.interbusiness.it
...


ciao..........non sapendo dove andare ad inserire il 
  riferimento 


 


Apri un qualsiasi modulo del 
  database e dal menu Strumenti scegli il comando Riferimenti... ; si aprirà una 
  finestra di dialogo con la quale potrai tra l'altro aggiungere nuovi 
  rifrimenti al database.


 


(perchè, ripeto, non sono un esperto di access ma applico, 
  dove posso, gli esempi che trovo sul sito comune o sui suoi link, ho 
  sostituito il tuo codice con il seguente:
 
Private Sub 
  ..........._NotInList (NewData As String, Response As Integer)
Dim strsql 
  As String, x As Integer
x = MsgBox ("Vuoi inserire questo valore nella 
  lista?", vbYesNo)
If x = vbYes Then
   strsql = "Insert Into 
  ........([........]) values (' " & NewData & "')"
  
   'MsgBox strsql
   CurrentDb.Execute strsql, 
  dbFailOnError
   Response = acDataErrAdded
Else
  
   Response = acDataErrContinue
End If
End Sub
 
così facendo non ho più l'errore di run-time 3201 ma il risultato non 
  cambia: "il testo immesso non corrisponde ad una voce dell'elenco".


Se preferisci posso rispiegarti tutto "per filo e per 
  segno"........
 


 


Inserendo così i nuovi record con 
  una query di inserimento invece che aprendo un recordset con DAO, naturalmente 
  non è più necessario aggiungere i riferimenti DAO al database.


Comunque penso che i tuoi problemi 
  nascono quando inserisci un nuovo prodotto di una nuova categoria: in questo 
  caso devi prima aggiungere il nuovo record nella tabella categoria e solo dopo 
  il nuovo record nella tabella prodotti.


grazie per la pazienza
 


 


Prego


ciao




ciao.......sono sempre io


grazie per l'aiuto riguardo a DAO.


Il problema però rimane comunque e non
dipende dall'inserimento di una nuova categoria.


Premetto che continuo a lavorare sulla
FAQ 3.77 a cui ho aggiunto il codice VBA indicato nella FAQ 3.39. (e quest'ultimo
ora funziona). 


Dopo varie prove e modifiche sono arrivato
al punto in cui, dopo aver scelto una tra le categoria già esistenti e
aver aggiunto un nuovo prodotto,


alla fine mi compare comunque il messaggio
"il testo immesso non corrisponde ad una voce dell'elenco" (e
penso che sia dovuto al fatto che la proprietà "solo in elenco"
è impostata a "si", anche se non riesco a fare diversamente),
però andando poi ad aprire la tabella "inventario" scopro che
i dati sono inseriti regolarmente, mentre nella tabella "prodotti"
mi ritrovo solo il nome del prodotto nuovo inserito senza però nessuna
indicazione della categoria


Più di così io però non riesco a fare.


Hai ulteriori suggerimenti?


ciao (ritengo che, se tutto dovesse
funzionare, sarebbe anche un bell'esempio da inserire tra quelli del sito
comune......no?)



 ha scritto nel 
  messaggio 
news:dnmkp3$ca5$1...@fata.cs.interbusiness.it
...


ciao.......sono sempre io


grazie per l'aiuto riguardo a DAO.


Il problema però rimane comunque e non 
  dipende dall'inserimento di una nuova categoria.
 
Premetto che continuo a lavorare sulla FAQ 3.77 a cui 
  ho aggiunto il codice VBA indicato nella FAQ 3.39. (e quest'ultimo ora 
  funziona). 
Dopo varie prove e 
  modifiche sono arrivato al punto in cui, dopo aver scelto una tra le categoria 
  già esistenti e aver aggiunto un nuovo prodotto,
 
alla fine mi compare comunque il messaggio "il testo 
  immesso non corrisponde ad una voce dell'elenco" (e penso che sia dovuto al 
  fatto che la proprietà "solo in elenco" è impostata a "si", anche se non 
  riesco a fare diversamente), però andando poi ad aprire la tabella 
  "inventario" scopro che i dati sono inseriti regolarmente, mentre nella 
  tabella "prodotti" mi ritrovo solo il nome del prodotto nuovo inserito senza 
  però nessuna indicazione della categoria
 


Allora inserisci anche la categoria quando 
  inserisci un nuovo record prodaotto.


Più di così io però non riesco a 
  fare.
 


Neppure io riesco a fare più di così.


Hai ulteriori suggerimenti?






Senza avere sotto mano il database 
  non so che altro dirti.


ciao (ritengo che, se tutto dovesse funzionare, sarebbe anche un 
  bell'esempio da inserire tra quelli del sito comune......no?)
 


 


Penso di no: nel Sito Comune a mio 
  avviso vanno pubblicato le singole soluzioni xhe risolvono un singolo 
  problema: ad assemblare per farne un database ci deve pensare 
  l'utilizzatore.
