Newsgroup: it.comp.lang.visual-basic
Titolo: Ancora dbf...Rispondete plz! :°(

Ciao, sono disperato è la prima volta che devo lavorare con dei file di
databse. Ho cercato di leggere un po' in giro ma ho visto che prima di
imparare qualcosa dovrei digerirmi dei tomi...
Non è che qualcuno mi potrebbe scrivere un esempio su come aprire dei file
dbf (es in c:\mydbf) supponedo di apreire il file 0001.dbf ?
E magari fare una query in sql su tale tabella? (es: select * from ...)
So solo che devo usare DAO che mi pare che sia la soluzione migliore visto
che il programma deve girare su dei Win95 con installato VisualBasic5 (io
stò usando vb6 e xp...ma non cambia niente...spero)
VI PREGO DATEMI UNA MANO!!!!
Grazie anticipatamente...
Ciao!
Davide

 wrote in message afi4t8$7rp$1...@news.ngi.it...
CUT
ti cambia ti cambia....guarda proprio in questi giorni sto revisionando il
lavoro di altri in VB5...morale ...per non farmi venire un infarto ho preso
una slitta un vecchio HD da 4 Gb e  ci ho messo Win98 + VB5 + office97....
Se sviluppi con VB6 col caz che poi vai a VB5 (anche l'incontrario talvolta
non funzia...)
La cosa migliore nel dubbio su che versione hai č che ti faccia un
collegamento ODBC....che puoi testare anche da dentro access....se access te
lo "tira" vuol dire che hai azzeccato il formato giusto!
vai in pannello di controllo e scegli Origini dati ODBC...ti fai un DSN di
sistema ...basta cliccare su aggiungi...č una procedura guidata....che dire
di piů??
Alla fine nel tuo progetto nel datacontrol se l'usi devi avere l'avvertenza
di dire di NON usare jet ma ODBC c'č una opzione apposta (ora sono su un pc
con vb6 sorry!)
mi sembra la prop DefaultType
cmq
in databasename metti il nome del DSN
in recordsource la tua query
ad esempio
SELECT * FROM LOCATIONS WHERE CODE='CAI'
fatto!

 lo "tira" vuol dire che hai azzeccato il formato giusto!
Purtroppo non posso usare ODBC...
Sono costretto a procedere in questo modo
mi puoi aiutare ugualemnte?
Grazie

 VI PREGO DATEMI UNA MANO!!!!
Vai qui (ricomponi su unica riga)
http://groups.google.it/groups?q=dbf+lupo+group:it.comp.lang.visual-basic&hl
=it&lr=&ie=UTF-8&selm=JvMP8.33844%24Kt3.815044%
40twister2.libero.it
&rnum=2

 =it&lr=&ie=UTF-8&selm=JvMP8.33844%24Kt3.815044%
40twister2.libero.it
&rnum=2
Ma cazzo!!! Eri ancora tu???!!!


Ti ringrazio un casino ma il fatto è che nonostante faccia così non mi
continua a dare errore...
non so proprio come fare.....
La cartella è giusta e anche il file ma continua a dirmi che non esiste
Non mi da errori solo se faccio
Set rs = db.OpenRecordset(File1.FileName, dbOpenTable)
ma se cerco di fare la query non lo trova
Set rs = db.OpenRecordset("select scatole from " + File1.FileName,
dbOpenTable)
ho anche fatto una prova mettendo io il nome di un file che esiste (pensavo
che magari ci fossero problemi per l'estensione....
Set rs = db.OpenRecordset("select scatole from 0001", dbOpenTable)
in questo caso 0001 è il file 0001.dbf che esiste nella cartella che apro
con
Set db = OpenDatabase("C:\Documents and
Settings\davide\Desktop\UniSalute\MAGGIO", False, False, "dBASE III;")
non so proprio come fare....

 ha scritto
Set db=OpenDatabase("C:\nome_cartella",0,0,"dBASE III;")
set rs=db.OpenRecordset("Select * from nome_file_senza_estensione")

Prova anche con dBase IV; o dBASE 5;
Non so cos'altro dire. Hai referenziato DAO (meglio il 3.6)?
Il fatto che apra in alcuni casi fa pensare di sě (e anche eventuali
librerie ISAM sono presenti)

(Scusate se copio lo stesso messaggio che ho postato su un altro ng)
Ciao, mi sapete indicare un sito per imparare ad usare dao che mi serve per
leggere dei file dbf, per adesso sono solo riuscito a scrivere
...
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Set db = OpenDatabase(File1.Path, False, False, "dBASE III;")
...
E fin qui ho capito (File1.Path è la directory dove ci sono i file dbf e
cliccando prima sul file e da analizzare e poi su un pulsate lui apre il
file...in teoria)
ma da qui mi trovo ancora disorientato (appunto per aprire il file). Mi è
parso di capire che potrei fare una cosa del genere
Set rs = db.OpenRecordset("select * from " + File1.FileName, dbOpenTable)
ma mi dice che non trova 'select scatole fron 0404040.dbf' e assicurarsi che
esista mentre se faccio
Set rs = db.OpenRecordset(File1.FileName, dbOpenTable)
non mi da nessum problema. Però da qui come posso fare le mi interrogazioni?
Sono totalmente disorientato. L'unica cosa conosco è SQL (studiato all'uni)
ma tutto quello che ci stà attorno per usarlo(dao?) mi è oscuro....
Mi potete dare una mano?
Ciao
Ma come, io sto qui ad aspettare e tu non ti degni nemmeno di leggere o di
dire qualcosa e vai a cross-postare in altro NG (con tanto di Oggetto
denigratorio per questo) ?
Ma che cazzo!
Ti ho scritto "SENZA ESTENSIONE"
ma mi dice che non trova 'select scatole fron 0404040.dbf' e assicurarsi che
esista mentre se faccio
Ma vaffa....

 ha scritto nel messaggio
news:afi6v0$8fr$1...@news.ngi.it...

Primo: Perche fai incazzare Lupo?
SEcondo: Perchè non usi l'odbc?...ce l'hanno tutti i PC!
Terzo: io non vorrei dirtelo ma se sviluppi in vb6 e poi deve girare su
vb5...in che senso poi scusa!...quando fai il setup che te frega che c'è sul
pc ospite..
Ci mancherebbe che dovessi costringere i clienti a comprare VB!
Intendi dire che il tuo codice poi deve essere trasportato in un altro
programma in vb5? AHIA!
cmq in 3 minuti su google ho trovato:
http://www.microsoft.com/IntlKB/italy/articles/i14/0/36.htm
 ora arrangiati un po eh!
ciauz!

 Ma vaffa....
Scusa ma io non volevo mica offenderti....e poi quel messaggio l'ho
inoltrato quando non c'erano ancora risposte a questo mio post, quindi io
non ho voluto offendere nessuno...mi spiace...
Mi scuso ancora per essere cosě opprimente ma č che devo finire al piů
presto questo programma....

 programma in vb5? AHIA!
no no e come dicevo prima...pensavo nella mia incompetenza che ci fossero
problemi con le librerie...
Scusa ancora....
Purtroppo ho ancora un casino di cose da chiedere...spero di non rompere
troppo...

 presto questo programma....
Non ne dubito e posso capirti. Ok, ricominciamo, se ti va:
1) Scrivi il codice che usi, dall'apertura del database alla costruzione del
recordset.
2) Scrivi i contenuti _esatti_ delle variabili che usi (cartella, nomi
files, comando SQL, etc.).
3) Scrivi qual è la riga che ti segnala errore e l'esatto messaggio che
viene esposto.
Se risulterai carente anche in una sola delle 3 richieste, i casi sono due:
1) Non sai leggere
2) Hai deciso che qui non ti si può aiutare
Quindi: Io ti ignorerò per sempre. Se vorranno, ci penseranno gli altri.

 Quindi: Io ti ignorerò per sempre. Se vorranno, ci penseranno gli altri.
No dai....io non volevo mica offenderti dai non fare così.... :-(
Grazie ancora anticipatamente!
P.S. purtroppo adesso posso solo leggere la tua risposta domani mattina...

 End Sub
1) Cambia quel + in & per effettuare una sicura concatenazione di stringhe e
non rischiare una somma numerica:
Set rs = db.OpenRecordset("Select * from " & Left(File1.FileName,
Len(File1.FileName) - 4), dbOpenTable)
2) Apri VB, scrivi OpenRecordset, seleziona la parola e premi F1. Vedi cosa
c'è scritto per dbOpenTable: Solo per aree di lavoro di Microsoft Jet.
Area di lavoro di Microsoft Jet
Area di lavoro che utilizza il modulo di gestione di database Microsoft Jet
per accedere all'origine dati che può essere un database di Microsoft Jet
(MDB), un database ODBC, come, ad esempio, un database Paradox oppure un
database ISAM.
Quindi sostituisci dbOpenTable con dbOpenDynaset
Set rs = db.OpenRecordset("Select * from " & Left(File1.FileName,
Len(File1.FileName) - 4), dbOpenDynaset)

 P.S. purtroppo adesso posso solo leggere la tua risposta domani mattina...
Ti chiedo solo una cortesia, quando puoi, senza fretta:
Scrivi solo se quello che secondo me è la soluzione (in post di qualche
minuto fa), lo è anche per te.

Aggiungo anche, come possibile correzione del post precedente:
"Select * from 08052002" è un comando SQL "generico" e può non essere inteso
come una tabella, ecco perchè dbOpebTable non gli sta bene
"08052002" è un comando SQL "specifico" e non può che essere inteso come una
tabella (ovviamente se questa esiste), quindi dbOpenTable gli sta bene

 C:\Documents and Settings\davide\Desktop\UniSalute\MAGGIO
Scusa la domanda indiscreta (solo un sě o un no, se vuoi):
Starai mica lavorando per un certo C??????O (i punti di domanda indicano un
carattere)?

 Len(File1.FileName) - 4), dbOpenDynaset)
Grazie 1000 e scusa per tutto il disturbo che ti ho dato...
Adesso finalmente funziona, peccato che adesso debba capire come fare alcune
query un po' complesse
Su queste tabelle posso applicare l'sql standard o ci sono alcune varianti?
Usano Access e mdb mi sono accorto che comandi come Count(distinct
attributo) non posso essere fatti ma vanno spezzati su due query...
Cmq adesso provo al massimo posto ancora....
Spero che non cominciate a odiarmi
Davide

 carattere)?
No č una ditta di nome M???????A e il responsabile si chiama L??I
Grazie ancora di tutto...

 non funzia...)
Mica vero. Il passaggio da VB6 a VB5 si puň fare con pochi semplici passi:
1) Non usare le nuove istruzioni presenti in VB6: Split, Replace, e simili.
Oppure scrivere delle semplici funzioni VB5 che le emulino.
2) Eliminare dal file di progetto le righe che stanno da Unattended=0 in
poi.
3) Per utilizzare gli OCX della versione 5 e non quella della versione 6,
creare un nuovo progetto in VB5, inserire tutti gli OCX che servono e
salvare. Poi aprire il progetto come file di testo e copiare le singole
righe che fanno riferimento agli OCX al posto delle corrispondenti righe nel
progetto che era stato scritto in VB6.
A questo punto funziona tutto, garantito.
E pensare che c'č chi ha fatto i soldi scrivendo un tools a pagamento per il
downgrade da VB6 a VB5...
Ciao
*Roby*

 downgrade da VB6 a VB5...
http://www.google.it/search?sourceid=navclient&hl=it&querytime=cbeCC&q=vb6to
vb5