Newsgroup: it.comp.lang.visual-basic
Titolo: impossibile trovare il database dopo il metodo update

Aiuto... sto per essere rinchiuso in manicomio!
Allora
effettuo delle modifiche ad un record, tramite il controllo data e
l'istruzione data1.recordset.update
va tutto bene, ma dopo l'esecuzione di questo metodo tutti i controlli data,
cosě come tutti i recordset indipendenti (quelli che getisco io via codice)
del mio progetto non riescono piů ad aprire il database, mi restituiscono il
messaggio (nella finestra di dialogo di windows, quella di messaggio
critico) "Impossibile trovare il file Amm.mdb".
Devo per forza chiudere il progetto, chiudere visual basic e riaprire il
tutto... e questo č inammissibile, ma non per la scocciatura di chiudere e
riaprire, ma per l'utente finale che non si puň vedere a video un messaggi
odel generre quando prima invece andava tutto bene.
Cosa cambia eseguendo il metodo update?

 Aiuto... sto per essere rinchiuso in manicomio!
Per non raggiungere il tuo stadio

ho abolito i controlli data
Ave
giuseppeD

 Amm.mdb".
Escluderei che sia dovuto ai controlli data, anche perchč dici che anche le
istruzioni via codice presentano lo stesso problema. Se escludiamo che il
database venga cancellato, propenderei per qualche istruzione che ti cambia
la cartella corrente (ChDir o qualche CommonDialog) e un inaffidabilissimo
percorso relativo indicato per il database. Prova a specificare per il
database un percorso assoluto (del tipo C:\Cartella\sottocartella\Amm.mdb) e
quel problema deve (!) scomparire.

ci sto al fatto che il problema scompaia con un percorso assoluto (non ho
provato, ma secondo logica...)
ma mica io posso utilizzare un percorso assoluto? se l'utente vuole cambiare
la directory nella quale installare il programma?
Non posso mica imporla...
cmq si, prima che nasca questo problema io utilizzo una common dialog per
aprire una certa immagine... però non sapevo che la commondialog mi
cambiasse la directory corrente.
Per ripristinarla come dovrei fare?
grazie

una domanda.. OT
Lupo, ma quanti anni di esperienza hai su visual basic?! :-)

 Aiuto... sto per essere rinchiuso in manicomio!

Non so se sia molto fine come soluzione ma per ripristinare il drive nel
quale č installato il programma io faccio cosě:
chdrive left(app.path,2)
dopo aver utilizzato la common.
Ciao, Marco


in molti casi il visual basic lo devi "fregare" cmq ho utilizzato
chdir(app.path) dopo la common dialog e va tutto bene... grazie
PS: Ma dove diavolo č scritto che la common dialog mi cambia la directory
corrente?!

 Per ripristinarla come dovrei fare?
Salvarla prima (CurDir o qualcosa del genere) e ripristinarla dopo (ChDir) ?

 Lupo, ma quanti anni di esperienza hai su visual basic?! :-)
Tanti, ma evidentemente ancora pochi:
leggendo qui a volte mi sento una merdaccia. Non sto scherzando.

e ripristinarla dopo (ChDir) ?
infatti, ho fatto cosě

e io come dovrei sentirmi? :-)

corrente?!
P.P.S.
Sinceramente, a cosa serve ChDir? 
Dai post che si leggono, sembra che chi la usa abbia un sacco di
problemi...
-- 
ciao, hal

 cambi?
Questa non cambia, ma, vedi (prima ho glissato), dipende un po' dai
contesti.
Io, per esempio, impongo una cartella sulla radice di un'unità (qualsiasi
unità, ma la cartella là deve stare) e, come ben puoi intuire, della App non
me ne faccio nulla, anche perchè i programmi stanno in una cartella, gli
archivi in un'altra, gli accessori in altra ancora. Poi, per velocizzare il
caricamento, a volte duplico i programmi e accessori (non gli archivi,
chiaramente) dal server di rete su una cartella locale. Sono scelte,
intendiamoci, ma non è sempre detto che si debba usare la App di VB.
All'avvio delle procedure rilevo il disco che contiene la cartella che
pretendo. Questa è la Path dei miei archivi, ovunque sia e anche se, come
detto, i programmi stanno da tutt'altra parte, magari su un'altra
macchina...

giusto per la cronaca, poi devo scappare a scuola guida...
allora, ho un record in cui, uno dei campi deve contenere un'immagine...
dato che evito di utilizzare il campo ole, ho utilizzato un campo testo in
cui memorizzo il percorso relativo dell'immagine associata al record.
Quando l'utente ha l'esigenza di modificare il contenuto del record e, piů
precisamente, l'immagine associata, devo richiamare la commondialog per
aprire.
Salvate le modifiche mi ritrovo, per arcani motivi che non ho trovato
documentati da nessuna parte, la directory corrente cambiata, per cui non mi
funziona piů nessun path relativo del programma...
Ecco l'esigenza di ripristinare la directory corrente.
PS: ma dov'č che č memorizzata la directory corrente??
PPS: che intendi dire che chi la usa ha un sacco di problemi? dove possono
insorgere?
grazie, ciao

 problemi...
Beh, come vedi, a ripristinare la cartella corrente dopo un CommonDialog...
:-P
Certo, se ogni percorso viene sempre specificato per esteso (anche con una
"mezzo-relativo" come App.Path) la ChDir non appare necessaria...

 "mezzo-relativo" come App.Path) la ChDir non appare necessaria...
Con chdrive left(app.path,2), e non chdir, imposto solo la lettera
identificativa del drive, non la cartella in cui è installato il programma e
tutto funziona.
Non sono sicuro che con un path "mezzo-relativo" la cosa si risolva poichè è
come se il drive in cui viene eseguita l'applicazione diventasse una specie
di null e ripristinandolo le cose tornano a funzionare.
Esagero dicendo che ho l'impressione che si confonda il sistema operativo e
non l'applicazione, usando la common?
Ciao, Marco

 operativo e non l'applicazione, usando la common?
Non saprei, come dicevo, visto che non appare documentato nella normale
guida, ma penserei semplicemente che chi ha scritto il CommonDialog si sia
dimenticato di salvare drive e cartella corrente (chiamiamolo percorso) e
ripristinarlo all'uscita. Un buco o, se preferisci, un lavoro ... non
finito, come ce n'è molti.

 finito, come ce n'è molti.
Ci pensi tu? ;-P
Buona serata, Marco

non riesco a capire cosa avete contro i path relativi...
Magari ho poca esperienza e non ci arrivo, mi illuminate?
Cmq il mio sospetto è che la commondialog imposti come directory corrente
quella dalla quale si va a prendere il file (o salvare...)

 corrente quella dalla quale si va a prendere il file (o salvare...)
Sě.

 viceversa.
no, certo hai ragione (con la programmazione ad oggetti ed eventi si rischia
questo), ma non riesco proprio a farmi in testa degli esempi per i quali
scrivere percorsi assoluti nei propri programmi dia dei vantaggi superiori a
quelli di utilizzare i relativi.
Certo non mi permetto di mettere in dubbio la tua esperienza (non ne ho mai
avuto motivo da che frequento questo forum :-), ma prima di fare mia una
tecnica suggerita da altri voglio capire bene vantaggi e svantaggi.
Grazie mille come al solito a tutti

 Per ripristinarla come dovrei fare?
Registri in una var prima di visualizzare la CD e poi la ripristini appena
acquisito il filename
-- 
<Gigio2K>
Sito Comune
Nokia -> I.T.H.N. -> 
http://www.ithn.it/
VB -> I.C.L.VB -> 
http://www.it-lang-vb.net/

 vantaggi superiori a quelli di utilizzare i relativi.
Non c'è (nemmeno a me in questo momento viene un esempio incofutabile), ma a
me basta questo: se citi, in uno o più punti, un percorso relativo non lo
"leggerai" mai nel codice, se lo citi in modo esplicito e assoluto, sarà là,
chiaro e inequivocabile.
Bada bene, App.Path riporta comunque un percorso assoluto e completo, ma è
... variabile. Ti piace il percorso relativo? Usalo pure, ma il primo
aggeggio che ti cambia la cartella corrente ti farà dannare. Sei masochista?
Io no e purtroppo di problemi ce n'è comunque a sufficienza per cercarsene
altri.
PS: (GbC docet) Hai provato a installare la tua applicazione nella cartella
C:\Pippo e nella cartella C:\? Se no, fallo e vedi se tutto ti funziona
tranquillamente in entrambi i casi. Al primo "Percorso o file inesitente",
oltre a ritenerti virtualmente bocciato da GbC, chiedi la soluzione nel NG
microsoft.public.beviam.beviam. Neh?! ;-)

 microsoft.public.beviam.beviam. Neh?! ;-)
intendi ad installarla in  c: e contemporaneamente in c:\pippo?
(che č GbC?:-)
HO capito ben poco di quello che mi hai scritto, ma ti ringrazio molto
comunque

 (che è GbC?:-)
Uno che ogni tanto passa di qui e del quale ho rammentato uno spunto per
suggerirti la prova da fare...

insorgere?
Non lo so, leggo un sacco di post di gente che non trova file,
database, ecc..
Io ho sempre usato i percorsi per esteso e mi ha sempre funzionato
tutto.
-- 
ciao, hal