Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

come salvare un un file in formato dbf da Office 2007 (excel)

640 views
Skip to first unread message

Domenico Zangrilli

unread,
Sep 5, 2011, 11:24:20 AM9/5/11
to
chi sa dire come aggirare l'ostacolo
ho un file denominato progradati.dbf che salvavo con Office XP
in vba si presentava così la registrazione della macro
ActiveWorkbook.SaveAs Filename:="C:\Users\New Computer\Documents\excel-programmi\progradati.dbf ", FileFormat:=xlDBF4, CreateBackup:=False

ma ora anche se volessi fare un registra macro non trovo l'estensione in DBF

per caso hanno cambiato nome? oppure c'è nell'installazione da attivare?

notate che questo lo fa

ActiveWorkbook.SaveAs Filename:="C:\Users\New Computer\Documents\excel-programmi\progradati..txt", _
FileFormat:=xlText, CreateBackup:=False

sarei grato se mi indicaste come risolvere

eliano

unread,
Sep 5, 2011, 6:01:21 PM9/5/11
to

Credo che BRUNO (ciao) si sia lanciato anche in questa tenzone.:-))
Vedi: http://tinyurl.com/4ydlkwo
Eliano

Domenico Zangrilli

unread,
Sep 6, 2011, 2:33:07 AM9/6/11
to
"eliano" ha scritto nel messaggio news:1550312d-4311-499a...@u6g2000yqa.googlegroups.com...
Grazie Eliano ma non mi consente di adoperarla si ferma alle Dim


Dim db As Database, RS As Recordset, SourceRange As Excel.Range
Dim i, j As Integer, Aapp As New Access.Application, NumCol As Integer
Dim TableDefn As TableDef, FieldDefn As Field, DirName As String
Dim NumRow As Integer, DB4FileName As String, AccessFileName As String

queste non funzionano
db As Database
RS As Recordset
TableDefn As TableDef
FieldDefn As Field

trovo strano .. perché dopo As non trovo nessuna dicitura di questi e quindi mi va in errore...

credo che mi tengo stretto .. l'excel 2003 al momento
visto che bruno.. dice... :-)

" La conversione di un ExcelRange in un file DBF non è più prevista dalla ' versione
2007 di Excel"






Bruno Campanini

unread,
Sep 6, 2011, 5:14:03 AM9/6/11
to
Domenico Zangrilli on 06-09-11 wrote:

> Grazie Eliano ma non mi consente di adoperarla si ferma alle Dim
>
>
> Dim db As Database, RS As Recordset, SourceRange As Excel.Range
> Dim i, j As Integer, Aapp As New Access.Application, NumCol As Integer
> Dim TableDefn As TableDef, FieldDefn As Field, DirName As String
> Dim NumRow As Integer, DB4FileName As String, AccessFileName As String
>
> queste non funzionano
> db As Database
> RS As Recordset
> TableDefn As TableDef
> FieldDefn As Field
>
> trovo strano .. perché dopo As non trovo nessuna dicitura di questi e quindi
> mi va in errore...
>
> credo che mi tengo stretto .. l'excel 2003 al momento
> visto che bruno.. dice... :-)
>
> " La conversione di un ExcelRange in un file DBF non è più prevista dalla '
> versione 2007 di Excel"

Ti occorrono queste References per Excel 2010:
Visaul Basic for Applications
Microsoft Excel 14.0 Object Library
Microsoft Office 14.0 Object Library
Microsoft Access 14.0 Object Library
Microsoft Office 14.0 Access database engine Object Library

Per Access 2007 usa le corrispondenti.

Bruno


Domenico Zangrilli

unread,
Sep 6, 2011, 3:48:46 PM9/6/11
to


"Bruno Campanini" ha scritto nel messaggio news:4e65e45c$0$15665$4faf...@reader2.news.tin.it...
> Ti occorrono queste References per Excel 2010:
> Visaul Basic for Applications
> Microsoft Excel 14.0 Object Library
> Microsoft Office 14.0 Object Library
> Microsoft Access 14.0 Object Library
> Microsoft Office 14.0 Access database engine Object Library
> Per Access 2007 usa le corrispondenti.
> Bruno

Grazie .. domani tenterò .. difatti pensavo oggi .. alle librerie.. (cioè i dll o gli exe)

purtroppo domani torno tardi... e stasera .. nonme la sento di verificare .. ... qui se ci metto mani.. lo so che poi non dormo e non risolvo..

:-) meglio farlo con calma..

Grazie ... di nuovo

eliano

unread,
Sep 6, 2011, 4:26:25 PM9/6/11
to
On 6 Set, 21:48, "Domenico Zangrilli" <domeni...@alice.it> wrote:
> "Bruno Campanini"  ha scritto nel messaggionews:4e65e45c$0$15665$4faf...@reader2.news.tin.it...

Certo,la calma è la virtù dei forti, ma credo che Bruno si riferisse
ai flag in Vbe (ALT+F11>>Strumenti>>Riferimenti>> flag sulle librerie
specificate), che anche se lo fai con la massima calma lo fai in 120
secondi e 3/10mi, compreso il prosciugamento del sudore.:-))
Ciao
Eliano

Domenico Zangrilli

unread,
Sep 7, 2011, 7:36:36 AM9/7/11
to

"eliano" ha scritto nel messaggio news:1bf0172d-5c48-4880...@k9g2000vbd.googlegroups.com...
come si dice ... la prudenza non è mai troppa :-)
http://www.grillizan.biz/vba-errore.gif

ora si è fermato a


' Apre un'istanza di Access e vi crea un Database
Aapp.NewCurrentDatabase DirName & AccessFileName

ho cambiato la dirName
DirName = "C:\Users\New Computer\Documents\"

ed ha eseguito tutto...

ma se voglio di nuovo aggiornare ma si riferma e mi dice
"errore di run-time '7865':
Esiste già un database con il nome immesso.
Assegnare al nuovo database un nome univoco."

scommetto allora che debbo eliminare ?
AccessFileName = "db1.mdb"

e poi farlo riaprire vuoto?


inoltre debbo creare tante cololonne con il comando set?
Set TableDefn = db.CreateTableDef("TT_ExcelTable")
Set FieldDefn = TableDefn.CreateField("F1", dbLong)
...
Set FieldDefn = TableDefn.CreateField("F140", dbLong)

o c'è una maniera col for

su su.. ancora un aiutino... :-)

Ps: per Eliano...
come vedi .... a volte per delle sciocchezze ci si annega in un bicchiere d'acqua anche se hai il salvagente :-))

Bruno Campanini

unread,
Sep 7, 2011, 11:26:27 AM9/7/11
to
Domenico Zangrilli on 07-09-11 wrote:

> come si dice ... la prudenza non ᅵ mai troppa :-)
> http://www.grillizan.biz/vba-errore.gif
>
> ora si ᅵ fermato a


>
>
> ' Apre un'istanza di Access e vi crea un Database
> Aapp.NewCurrentDatabase DirName & AccessFileName
>
> ho cambiato la dirName
> DirName = "C:\Users\New Computer\Documents\"
>
> ed ha eseguito tutto...
>
> ma se voglio di nuovo aggiornare ma si riferma e mi dice
> "errore di run-time '7865':

> Esiste giᅵ un database con il nome immesso.


> Assegnare al nuovo database un nome univoco."
>
> scommetto allora che debbo eliminare ?
> AccessFileName = "db1.mdb"

Il file db1.mdb viene creato dalla procedura e non deve esistere, salvo
prevederne la cancellazione dalla procedura stessa.
Analogamente per il file db1.dbf

> e poi farlo riaprire vuoto?
>
>
> inoltre debbo creare tante cololonne con il comando set?
> Set TableDefn = db.CreateTableDef("TT_ExcelTable")
> Set FieldDefn = TableDefn.CreateField("F1", dbLong)
> ...
> Set FieldDefn = TableDefn.CreateField("F140", dbLong)

Se hai una tabella con 140 campi... vendi Office e comprati una canna
da pesca.

> o c'ᅵ una maniera col for

Certo che puoi creare un loop For... Next, se i nomi dei campi sono
nell'ordine per esempio di
F1, F2, ... Fn,
i VarType tutti uguali,
il terzo parametro (dimensione) altrettanto uguale per tutti.

Bruno


Domenico Zangrilli

unread,
Sep 7, 2011, 4:08:56 PM9/7/11
to


> "Bruno Campanini" ha scritto nel messaggio news:4e678d27$0$15671$4faf...@reader2.news.tin.it...

> > Domenico Zangrilli on 07-09-11 wrote:

>> come si dice ... la prudenza non è mai troppa :-)
>> http://www.grillizan.biz/vba-errore.gif
>>
>> ora si è fermato a
>>
>
> > ' Apre un'istanza di Access e vi crea un Database
>> Aapp.NewCurrentDatabase DirName & AccessFileName
>>
>> ho cambiato la dirName
> > DirName = "C:\Users\New Computer\Documents\"
>>
>> ed ha eseguito tutto...
>>
>> ma se voglio di nuovo aggiornare ma si riferma e mi dice
> > "errore di run-time '7865':
>> Esiste già un database con il nome immesso.
>> Assegnare al nuovo database un nome univoco."
>>
>> scommetto allora che debbo eliminare ?
>> AccessFileName = "db1.mdb"

> Il file db1.mdb viene creato dalla procedura e non deve esistere, salvo
> prevederne la cancellazione dalla procedura stessa.
> Analogamente per il file db1.dbf

come pensavo ... per cui .. faccio prima a fare l'inverso ... apro access .... e apro il file di excel e salvo in DBIV
e non mi da ERRORI E NON MI DICE CHE IL FILE è CREATO... O SE NO TORNO alla versione 2003 (Office XP)
faccio ancora prima .. perchè tutto funziona a meraviglia...

:-)


>> e poi farlo riaprire vuoto?
>>
>>
>> inoltre debbo creare tante cololonne con il comando set?
>> Set TableDefn = db.CreateTableDef("TT_ExcelTable")
>> Set FieldDefn = TableDefn.CreateField("F1", dbLong)
>> ...
>> Set FieldDefn = TableDefn.CreateField("F140", dbLong)

> Se hai una tabella con 140 campi... vendi Office e comprati una canna da pesca.

Vendere Office ... 2007 per me vedo meglio Office XP è più pratico ... e più maneggevole e credo
che in molti la pensano come me... e così oltre che andare a pescare posso anche andare a sciare perché
con un click .. tutto fatto .. da foglio di excel subito il formato .dbf

> > o c'è una maniera col for

> Certo che puoi creare un loop For... Next, se i nomi dei campi sono
> nell'ordine per esempio di
> F1, F2, ... Fn,
> i VarType tutti uguali,
> il terzo parametro (dimensione) altrettanto uguale per tutti.

> Bruno

Grazie Bruno ...
e scusa per i disguidi ... ma L'office 2007 è proprio indigesto per me...
pensa .. ora .. sto impazzendo per capire come fare per calcolare:

dalle 07.30 alle 12.00

A1= 07.30 e B1 = 12.00

ho messo la formula in C1 =B1-A1
mi dice .... valore#

ora scopro
07:30 12:00 e mettendo i due punti li legge

allora mi son detto sarà l'impostazione iniziale che è modificata (sistema operativo)

difatti modificato quello .. funziona subito senza andare a fare formato celle... ecc..
lo mette il valore come se fosse numerico...

si vede che a qualcuno che programma gli piacevano i due punti... :-P

vabbè diamo la colpa a noi stessi.... che quando installiamo diamo per scontato che è tutto come precedentemente...

notte a tutti.... e speriamo .. che finisca sta storia... o se no .. me ne vado in pensione ed abbandono i pc....



0 new messages