Newsgroup: it.comp.appl.access
Titolo: Collegare tabella e passando la password  via codice

.... per collegare tabelle ad un FE da un BE senza password scrivo
questo codice:
DoCmd.TransferDatabase acLink, "Microsoft Access", "C:\AccProve\Tabelle
\TaRegistroSpese.mdb", acTable, "TaNum", "TaNum", False
DoCmd.TransferDatabase acLink, "Microsoft Access", "C:\AccProve\Tabelle
\TaRegistroSpese.mdb", acTable, "TaSpe", "TaSpe", False
se la tabella C:\AccProve\Tabelle\TaRegistroSpese.mdb ha una password,
come faccio a passare la password via codice?
... Ms Access;PWD=LaMiaPassWord;DATABASE=C:\AccProve\ ....  ?????

(.....)

ww.sitocomune.com
Sez. General
FAQ 	6.15
Sez. Tables
FAQ	1.10
	1.12
	1.13
	1.16
Vincenzo Turturro
Certificato Eucip Core Level
ITA 0000-002299 del 14/05/2007
---------------------------------------------
il sito comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------
risorse Access:
http://www.accessgroup.it
---------------------------------------------
Il sito comune di it.comp.as400
http://www.faq400.com
---------------------------------------------

 ---------------------------------------------
Ti ringrazio per le informazioni che mi hai fornito.
Conosco e ho già letto  le FAQ che mi hai segnalato, ma le mie
conoscenze sono scarse e non sono riuscito a completare la riga di
codice che a me serve.
Il mio FE ha un collegamento a 8 tabelle, 5 vengono da un unico BE
(protetto da password) e altre 3 da 3 diversi BE e uno di questi 3 è
protetto da password.
Il mio codice è questo:
' elimino i collegamenti che stanno in altre tabelle (in modo che nel
FE rimangano solo i collegamenti alle 5 tabelle di cui sotto ma che
puntano a un BE diverso)
   DoCmd.DeleteObject acTable, "AAA"
   DoCmd.DeleteObject acTable, "BBB"
   DoCmd.DeleteObject acTable, "CCC"
'Collego 5 tabelle da altro BE (sostituendo le tabelle ora collegate
con altre da fonte diversa e con lo stesso nome)
   Dim StringaSQL As String
   Dim DBCorrente As Database
   Dim TabelleCollegate As TableDef
   Set DBCorrente = CurrentDb
   StringaSQL = "SELECT Name FROM MsysObjects WHERE ((Type) = 6) ORDER
BY Name"
   DBCorrente.TableDefs.Refresh
   Set Rst = CurrentDb.OpenRecordset(StringaSQL)
   For Each TabelleCollegate In DBCorrente.TableDefs
      With TabelleCollegate
      If Len(.Connect) > 0 Then
         .Connect = "Ms Access;PWD=MiaPassWord;DATABASE=\\MioPercorso
\MioBE.mdb  ' qui ho saputo fare riferimento alla password ( ...
perchè ho copiato :-) )
          .RefreshLink
           End If
      End With
   Next
                       ' Alla fine Rimetto i collegamenti che stanno
in altre tabelle
DoCmd.TransferDatabase acLink, "Microsoft Access", "\\ MioPercorso
\BEAAA.mdb  ", acTable, "AAA", "AAA", False
DoCmd.TransferDatabase acLink, "Microsoft Access", "\\ MioPercorso
\BEBBB.mdb   ", acTable, "BBB", "BBB", False
DoCmd.TransferDatabase acLink, "Microsoft Access", "\\ MioPercorso
\BECCC.mdb   ", acTable, "CCC", "CCC", False
' ma quest'ultimo collegamento è a un  BE (BECCC.mdb ) protetto da
password e quindi dovrei solamente ( se è possibile ) inserire nella
ultima riga di codice scritta sopra il riferimento alla password in
modo che via codice passo la password ( ... ed è quello che non riesco a
fare perché sono solo un praticone e non ho profonde conoscenze di
visual basic )
Spero di non essere strato troppo prolisso
Ringrazio chi mi aiuta a scirivere quest'ultima riga di codice ( tutto
il resto funziona bene e da anni .........)

 ---------------------------------------------





[Risposta]
----------------------------------------------------------------
Scusa Federico... ma l'osservazione che ti faccio è sicuramente scontata...!
Perchè hai usato 2 metodi diversi la dove con il 1° hai visto che è più
comdodo
passare la PWD...????
Ora capisco che tu abbia copiato, e questo sarebbe anche concepibile se tu
ti fossi
anche adoperato a capire quello che hai copiato... ma copiare senza capire è
una brutta
abitudine, e soprattutto un pessimo modo di presentarsi per chiedere AIUTO.
Il metodo che hai copiato lo puoi usare anche SINGOLO al posto di
TransfertDatabase :
CurrentDb.Tabledefs("NomeTabella").Connect="Ms
Access;PWD=MiaPassWord;DATABASE=\\MioPercorso
\BEAAA.mdb"
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.alessandrobaraldi.it
---------------------------------------------------------------------------


Ti ringrazio per la cortesia che mi hai usato nel rispondermi, ma
usando il tuo codice ricevo come risposta
"errore 3265 ............ non trovato in questo insieme"
Ho dovuto usare due modi per le le tabelle provengono da due DB
diversi.
Non fa parte delle mie abitudini scimmiottare i codici di altri, ma io
ho i miei limiti fisici ( ... 58 anni) e culturali (da sempre
mi occupo di diritto e procedura penale); ho cominciato qualche anno
fa a programmare da autodidatta in access e lo trovo
divertente come giocare a scacchi. Ho, però,  i miei grossi limiti di
fronte ai quali, dopo avere "bestemmiato" per ore e ore
di fronte a un codice che non riesco a scrivere o a
comprendere ........... mi devo arrendere!
Spero tu voglia correggere la stringa di codice che mi hai passato
l'altro giorno che ti trascrivo qui per tua comodità:


Ti ringrazio per la cortesia che mi hai usato nel rispondermi, ma
usando il tuo codice ricevo come risposta
"errore 3265 ............ non trovato in questo insieme"
Ho dovuto usare due modi per le le tabelle provengono da due DB
diversi.
Non fa parte delle mie abitudini scimmiottare i codici di altri, ma io
ho i miei limiti fisici ( ... 58 anni) e culturali (da sempre
mi occupo di diritto e procedura penale); ho cominciato qualche anno
fa a programmare da autodidatta in access e lo trovo
divertente come giocare a scacchi. Ho, però,  i miei grossi limiti di
fronte ai quali, dopo avere "bestemmiato" per ore e ore
di fronte a un codice che non riesco a scrivere o a
comprendere ........... mi devo arrendere!
Spero tu voglia correggere la stringa di codice che mi hai passato
l'altro giorno che ti trascrivo qui per tua comodità:
CurrentDb.Tabledefs("NomeTabella").Connect="Ms
Access;PWD=MiaPassWord;DATABASE=\\MioPercorso \BEAAA.mdb"
[Risposta]
-------------------------------------
L'età e le altre motivazioni che hai addotto non le ritengo delle scusanti
visto che in ogni caso stai cercando di sviluppare un prodotto... se lo
fossero
non avresti nemmeno dovuto iniziare... ;-)
La stringa che hai riportato ha delle parti generiche... come il Percorso
del tuo Database che spero
tu abbia intuito fosse da sostituire con il Percorso corretto del tuo DB...
così come il NOMETABELLA
che ovviamente dovrà essere il Nome della Tabella esistente...!!!


 @Alex (Alessandro Baraldi)
Non adducevo "scusanti" neppure quando ero all'asilo e ti lascio
immaginare se sento il bisogno di farlo adesso e in questa sede e con
interlocutori che non conosco.
Mi sono limitato a dare informazioni sul mio grado (scarso) di
conoscenze informatiche.
Avrei maggiormente apprezzato se il tuo tono fosse stato più cortese.
Ti ho detto che ho molti limiti, ma i miei limiti non arrivano al
punto di non sapere adattare la tua stringa al mio caso concreto.

Non adducevo "scusanti" neppure quando ero all'asilo e ti lascio
immaginare se sento il bisogno di farlo adesso e in questa sede e con
interlocutori che non conosco.
Mi sono limitato a dare informazioni sul mio grado (scarso) di
conoscenze informatiche.
Avrei maggiormente apprezzato se il tuo tono fosse stato più cortese.
Ti ho detto che ho molti limiti, ma i miei limiti non arrivano al
punto di non sapere adattare la tua stringa al mio caso concreto.
[Risposta]
------------------------------------
Fai attenzione caro Federico perchè non sono stato affatto scortese nè ti ho
mancato di rispetto.
Ognuno ha conoscenze di vita o scolastiche diverse... ciò non toglie che in
tutti i settori senza studiarne le basi
si avranno sempre complicazioni nel rapportarsi TECNICAMENTE con
specialisti.
Quando ho ipotizzato il Copia/Incolla (che tu hai in qualche modo smentito)
era per invitarti
ad aprire l'Help per capire cosa fossero e come interpretare i parametri
assegnati alle istruzioni
che hai Incollato nel primo messaggio vista l'evidente titubanza su quanto
stavi facendo.
Tendenzialmente chi ha una cultura scolastica medio-alta è abituato a
leggersi Libri/Manuali...
Il tuo caso probabilmente non è diverso... e ti assicuro che la
programmazione al pari di altre
discipline richiede STUDIO... quanto studio è relativo...
Capisco pure che chi inizia avendo alle spalle tutt'altra esperienza possa
avere limiti sull'informatica... ma
visto il punto a cui sei arrivato, Linkare tabelle con codice VBA, il metodo
per come usare quel codice
doveva essere la prima cosa che dovevi capire... poi magari gli errori li si
correggeva.
Realmente non trovo mai persone che chiedono approfondimenti di come
sfruttare l'Help o i manuali ...
trovo solo persone che chiedono di correggere Codice(copiato) perchè non
funziona...
Il tuo problema nasce dal fatto che se avessi aperto l'Help in linea che
Access mette a disposizione
e magari il visualizzatore Oggetti digitando alcune parole del codice
incollato... avresti potuto leggere
le informazioni BASE per come interpretarne l'uso al fine di CAPIRE ed
essere in gradi di adattarle.
Chiaramente come tutti i programmi su base informatica prima di usarli
sarebbe bene almeno conoscerne
le caratteristiche, quali aiuti mette a disposizione, che strumenti di
lavoro ti offre... perchè questo, che non fà parte
della programmazione è argomento che si da per scontato che uno debba
conoscere.
Esempio:
HELP in linea
VISUALIZZATORE OGGETTI
FINESTRA IMMEDIATA PER IL DEBUG
FINESTRA VARIABILI LOCALI
USO DI BREACK POINT PER DEBUG
Sono tutte cose descritte nell'Help... che personalmente mi sono preso la
briga di leggermi per non porre domande
scontate.
Per questo motivo non ti devi offendere in alcun modo... non ti ho nè
denigrato nè insultato ma ho solo
esposto un mio parere per come tu potresti migliorare il tuo approccio
all'informatica.
Detto questo ti suggerisco di cercare nel Visualizzatore Oggetti la parola
Tabledef e la relativa Proprietà Connect troverai una chiara ed esplicita
spiegazione di come funziona quel sistema di riconnessione dei riferimenti,
troverai anche un esempio...
