Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Relazioni db access
domenica 11 maggio 2014 - 23.38
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Giovi
Profilo
| Newbie
26
messaggi | Data Invio:
dom 11 mag 2014 - 23:38
buonasera, ho creato un db access con be e fe, ho creato una maschera che mi permette di esportare e aggiornare le relazioni tra le tabelle tramite vba
il problema sorge quando voglio rendere dinamica la cosa, cioe' quando voglio utilizzare delle variabili che contengono le tabelle da relazionare, l'id della relazione
il codice che utilizzo e' questo
VTabellaPrimaria = RRelazioni.Fields("TabellaPrimaria")
VTabellaSecondaria = RRelazioni.Fields("TabellaSecondaria")
VIDRelazione = RRelazioni.Fields("IDRelazione")
VRelazione = "Rel" & Mid(VTabellaPrimaria, 2) & Mid(VTabellaSecondaria, 2)
With VDbArchivio
' creare la relazione con update e delete cascade
Set VRel = .CreateRelation(VRelazione, VTabellaPrimaria, VTabellaSecondaria, _
VDbArchivioRelationUpdateCascade + VDbArchivioRelationDeleteCascade)
' creare i campi nella relazione
VRel.Fields.Append VRel.CreateField(VIDRelazione)
VRel.Fields![VIDRelazione].ForeignName = VIDRelazione
.Relations.Append VRel
End With
Set VRel = Nothing
il punto in cui va in errore e' questo
VRel.Fields![VIDRelazione].ForeignName = VIDRelazione
dice elemento non presente nell'insieme
come posso fare?
spero di essere stata chiara
grazie
saluti
Gio'
renarig
Profilo
| Expert
517
messaggi | Data Invio:
lun 12 mag 2014 - 06:38
Solitamente le relazioni non si esportano !!!
Tuttavia esiste la possibilità tecnica di farlo.
Ma non ho capito il contesto globale, devi esportare le relazioni del BE nel FE ?
Provo a buttare giu poche impressioni che mi incuriosiscono:
Hai una tabella che ti alimenta il RecordSet "RRelazioni" su cui definisci ad ogni record una relazione,
ma non vedo il ciclo sul RecordSet
quella formulina .... Mid(VTabellaPrimaria, 2) ......
solitamente il Mid vuole 2 parametri tu ne metti solo 1
( ma forse sbaglio io )
Adesso devo andare .....
Magari postaci una MiniDemo di esempio ........
.
Gio'
Profilo
| Newbie
13
messaggi | Data Invio:
lun 12 mag 2014 - 10:17
allora, non ho postato il ciclo, perche' il problema non e' nel ciclo, ma piuttosto nell'impostazione delle variabili, il codice che io utilizzo per creare le relazioni del db esterno e' questo
With VDbArchivio
' creare la relazione con update e delete cascade
Set VRel = .CreateRelation("RelProvaProva1", "TProva", "TProva1", _
dbRelationUpdateCascade + dbRelationDeleteCascade)
' creare i campi nella relazione
VRel.Fields.Append VRel.CreateField("IDProva")
VRel.Fields!IDProva.ForeignName = "IDProva"
.Relations.Append VRel
End With
e funziona perfettamente
il problema e' quando utilizzo le variabili al posto dei campi fissi, come il codice che ho postato precedentemente
Set VDbArchivio = OpenDatabase(VArchivio)
Set RRelazioni = VDb.OpenRecordset("SELECT TabellaPrimaria, TabellaSecondaria, IDRelazione From TRelazioni")
Do While Not RRelazioni.EOF
VTabellaPrimaria = RRelazioni.Fields("TabellaPrimaria")
VTabellaSecondaria = RRelazioni.Fields("TabellaSecondaria")
VIDRelazione = RRelazioni.Fields("IDRelazione")
VRelazione = "Rel" & Mid(VTabellaPrimaria, 2) & Mid(VTabellaSecondaria, 2)
With VDbArchivio
' creare la relazione con update e delete cascade
Set VRel = .CreateRelation(VRelazione, VTabellaPrimaria, VTabellaSecondaria, _
DbRelationUpdateCascade + DbRelationDeleteCascade)
' creare i campi nella relazione
VRel.Fields.Append VRel.CreateField(VIDRelazione)
VRel.Fields![VIDRelazione].ForeignName = VIDRelazione
.Relations.Append VRel
End With
Set VRel = Nothing
RRelazioni.MoveNext
Loop
volevo rendere tutto dinamico, cioe' prendere tabelle, relazioni e campo da relazionare, da una tabella che ho creato appositamente
ma mi va male su questa riga
VRel.Fields![VIDRelazione].ForeignName = VIDRelazione
mi dice elemento non presente in questo insieme
cosa sbaglio?
grazie
saluti
Gio'
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !