Newsgroup: it.comp.lang.visual-basic
Titolo: [?vb6] problema commondialog vs app.path HELP ME!!!

Ragazzi, aiutatemi sto impazzendo...
ho problemi con una commondialog che mi sta ditruggendo...
Vi spiego tutti i passaggi...
Ho una mia applicazione con svariate connessioni ado tutte allo stesso
db....
percorso d:\prove\laboratorio\laboratorio.mdb
Quando vado su personalizate di ogni ado gli do il provider e gli setto il
database passandogli solo il nome "laboratorio.mdb", verifico la connessione
e tutto va bene...
quindi ho la stringa di connessione:
adoRiparazioni.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=laboratorio.mdb;Persist Security Info=False" (tutta su un rigo)...
Per sicurezza nei miei form_load gli ripasso la stringa di connessione:
adoRiparazioni.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" & App.Path & "\laboratorio.mdb;Persist Security Info=False" (tutta
su un rigo)...in modo da specificare che il database deve essere cercato
nell'application path
Fin qui tutto a posto e il programma mi va un amore....
la commondialog mi serve in una form per caricare un immagine (logo
aziendale)...
vado in questo form e apro con la common la cartella c:\documenti\immagini e
mi prendo la mia bella immaginetta...
Ora ogni volta che apro una form mi dà l'errore...
impossibile aprire "C:\documenti\immagini\laboratorio.mdb"
Ora è evidente che il problema è dovuto al fatto che quando faccio
personalizzate gli passo solo il nome del db e non tutto l'indirizzo, ma se
fli passassi tutto l'indirizzo quando faccio un eseguibile non posso +
cambiare la cartella del db o no?
Aiutatemi vi prego!!!

 posso + cambiare la cartella del db o no?
Certo.
Ma basta che tu metta l'indirizzo del file in una variabile pubblica a
livello di progetto, la popoli usando app.path all'avvio, e poi usi quella
in tutti i form.
Altra cosina: Commondialog va usato cosě:
CommonDialog1.ShowOpen
Percorso = CommonDialog1.FileName
ChDrive "c:"
Senza quest'ultima linea, potresti avere casini immani se apri file da
dischetto floppy.
Ciao
Alberto


ehhm potresti farmi un esempio?
devo mettere in personalize tutto l'indirizzo o no?


Ma in personalize di cosa???
Hai detto che nel form load imposti la connectionstring usando il path?
E allora sei già a posto, no?
Ho riletto tre volte il tuo post, e a meno che io non stia diventando cieco
(dannati ormoni :-P), hai detto che usi diverse connessioni Ado.
Per ognuna, da qualche parte nel codice sei obbligato a scrivere la
ConnectionString.
Alt...
Ferma tutto.
Non è che usi un Ado DataControl o qualcosa del genere?
Alberto

 ha scritto nel messaggio
news:M6BY9.46452$ZE.12...@twister2.libero.it...

Caro Alberto,
scusami se ti faccio "scemunire" di sabato sera...
allora...
io uso un oggetto ado (facciamo uno solo tanto è lo stesso...) nelle
propietà devo cliccare su personaliza no? o posso mettere tutto da codice?
Xkè il problema sta tutto lì...
come puoi leggere dal mio primo post, io prima setto l'ado tramite la
proprietà personalize e poi per sicurezza, setto pure la stringa di
connessione da codice (two is megl' ca one)...
ma quel fottuto di commondialog mi sputtana la directory da cui il programma
va a prndere la path...
Ora seguendo la tua tesi mi viene da chiederti..
Se piazzo da capo un oggetto ado su una form posso connetterlo direttamente
da codice evitando di usare personalize?
Grazie


Caro Alberto,
ho risolto eliminando tutto e settando gli Ado solo da codice...
è un po' + scocciante ma così va a perfezione...
Certo però che mi piacerebbe capire xkè diversamente (settando da
personalize e usando un commondialog con open) non va...
Bohhh...

 Bohhh...
Perchè la CommonDialog "sposta" la cartella corrente (Curdir)
Riprova (tanto per provare, ma non rimettere il controllo Data, se puoi) a
salvare in una variabile la cartella corrente (CurDir) prima di chiamare il
CommonDialog e ripristinala (con ChDir) subito dopo il suo uso.

 connessione da codice (two is megl' ca one)...
Chiariamo una cosa:
La Connessione Ado è un Oggetto ADO (ADODB.Connection, per l'esattezza).
Quando hai detto che usavi delle connessioni ADO, pensavo usassi delle
connessioni ADO.
Invece, tu utilizzi dei CONTROLLI ADO DATACONTROL.
Sono cose diverse.
Se l'avessi detto all'inizio, avremmo perso meno tempo tutti e due.
Alberto

Ti convine salvare App.path in una variabile  prima di aprire la
commondialog e poi ripristinarlo =)