Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Συναρτήσεις] Εισαγωγή δεδομένων σε πίνακα (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/785-eisagogi-dedomenon-se-pinaka.html)

gr8styl 22-10-10 19:48

Φίλε Μανώλη,
για να δούμε ποιο ακριβώς είναι το πρόβλημα θα πρέπει να βεβαιωθούμε ότι χρησιμοποιείς τον σωστό οδηγό ODBC.

Κανονικά ο οδηγός ODBC που χρησιμοποιείται για Αρχεία dBase (.dbf) είναι το C:\WINDOWS\system32\odbcjt32.dll

Αυτό μπορείς να το ελέγξεις μέσω του "Πίνακας ελέγχου ==> Εργαλεία διαχείρισης ==> Πηγές δεδομένων (ODBC)"
Στην καρτέλα DSN χρήστη δίπλα από το Αρχεία dBase πρέπει να γράφει Microsoft dBase Driver (*.dbf)
Στήν καρτέλα Προγράμματα οδήγησης δίπλα από το Microsoft dBase Driver (*.dbf) πρέπει να γράφει το ODBCJT32.DLL

Για δες και πες μας αν είναι έτσι τα πράγματα και ποια είναι η έκδοση και η ημερομηνία του ODBCJT32.DLL που έχεις.:023:

Μια δεύτερη δοκιμή είναι να φτιάξεις <Νέα προέλευση δεδομένων> και να δεις αν παραμένει το πρόβλημα.
Ανοίγεις το Excel και επιλέγεις Δεδομένα -> Εισαγωγή εξωτερικών δεδομένων -> Δημιουργεία ερωτήματος σε βάση δεδομένων...
Επιλέγεις <Νέα προέλευση δεδομένων>
1. Σαν όνομα δίνεις ότι θέλεις πχ manosDBFfiles
2. Σαν πρόγραμμα οδήγησης επιλέγεις Microsoft dBase Driver (*.dbf)
3. Στην Σύνδεση (click button) ξετσεκάρεις το Χρήση τρέχοντος καταλόγου και πατώντας το Επιλογή καταλόγου (click button) πας και επιλέγεις τον κατάλογο που περιέχει το STAT.dbf πχ C:\TEMP\MANOS
4. Σαν πίνακα επιλέγεις το STAT
click OK
Έτσι μπορείς να επιλέξεις σαν πηγή το manosDBFfiles το οποίο θα σου ανοίξει κατευθείαν το stat.dbf για να επιλέξεις πεδία.

Θα περιμένω να μας πεις τι έκανες και αν τα κατάφερες. :newpaper:

Τα λέμε
Θανάσης

manolis 22-10-10 21:34

Καλησπέρα

Φίλε Θανάση
Εκανα αυτά που μου είπες και τα αποτελέσματα είναι :


α. Δίπλα απο τα αρχεία dbase εχει το Microscoft Access dBASE drivers και χρησιμοποιεί το αρχειο ACEODBC :wtf:.

β. Το αρχείο ODBCJT32.DLL είναι η έκδοση 6.01.7600.16385 με ημερομηνία 14-7-2009.

γ. Η δευτερη δοκιμή που μου πρότεινες δούλεψε μια χαρά :thumbup::047:

To Office ειναι 2007 και το λειτουργικό win 7 ελληνικα και τα 2 αν παίζει κάποιο ρόλο αυτό


:thanks:

gr8styl 23-10-10 01:11

Παράθεση:

Αρχική Δημοσίευση από manolis (Μήνυμα 4101)
α. Δίπλα απο τα αρχεία dbase εχει το Microscoft Access dBASE drivers και χρησιμοποιεί το αρχειο ACEODBC :wtf:.

Δεν διαθέτω windows 7 και δεν ξέρω αν το ACEODBC είναι το σωστό. Στο προηγούμενο μήνυμα μου αναφερόμουν σε windows XP.

Παράθεση:

Αρχική Δημοσίευση από manolis (Μήνυμα 4101)
β. Το αρχείο ODBCJT32.DLL είναι η έκδοση 6.01.7600.16385 με ημερομηνία 14-7-2009.

Λογικό φαίνεται αφού έχεις win7. Στο δικό μου winXP ειναι 4.00.6305.00 14-4-2008

Παράθεση:

Αρχική Δημοσίευση από manolis (Μήνυμα 4101)
γ. Η δευτερη δοκιμή που μου πρότεινες δούλεψε μια χαρά :thumbup::047:

Πολύ χαίρομαι που βοήθησα :icon_hihi::yahoo:

Τα λέμε.
Θανάσης

Tasos 24-10-10 12:00

Καλημέρα σε όλους!
Σε περιπτώσεις που για κάποιο λόγο χρειαστεί επανασύνδεση ή και για τη δημιουργία νέου ερωτήματος/σύνδεσης
σε εξωτερική πηγή δεδομένων τύπου *.DBF, αφού επιλέξουμε το επιθυμητό φύλλο
στην Excel (νέο ή με ήδη υπάρχουσα σύνδεση), μπορούμενα χρησιμοποιηήσουμε τον παρακάτω παραδειγματικό κώδικα:

Ελπίζω να σας φανεί χρήσιμος!

Sub SetNewDBFConnection()
Dim ArrSQL, wks As Worksheet, cnn, DbfFile As String, BaseNameDbfFile As String, fso As Object

Set wks = ActiveSheet
Set fso = CreateObject("Scripting.FileSystemObject")
DbfFile = GetDBFFile
If DbfFile = vbNullString Then Exit Sub

cnn = "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password=" """;User ID=Admin;Data Source=,"
cnn = cnn & Replace(fso.GetParentFolderName(DbfFile) & "\", "\\", "\")
cnn = cnn & ";Mode=Share Deny Write;Extended Properties="""";Jet OLEDB:" _
& "System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database " _
& "Password="""";Jet OLEDB:Engine Type=18;Jet OLEDB:Database Locking ," _
& "Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global " _
& "Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:," _
& "Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet " _
& "OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Wit," _
& "hout Replica Repair=False;Jet OLEDB:SFP=False"
cnn = Split(cnn, ",")

If wks.QueryTables.Count > 0 Then
wks.QueryTables(1).Connection = Array(cnn)
Else
wks.QueryTables.Add Connection:=Array(cnn), Destination:=Range("A1")
End If

BaseNameDbfFile = fso.GetBaseName(DbfFile)

ArrSQL = "SELECT DISTINCTROW [PP1], CDate([PP6]) AS MyDate, CDate([PP7]) AS MyDate1 " _
& "FROM [" & BaseNameDbfFile & "|] " _
& "GROUP BY [PP1],[PP6], [PP7] " _
& "ORDER BY CDate([PP6])" ' μπορεί να προσαρμοστεί

ArrSQL = Split(ArrSQL, "|")

With wks.QueryTables(1)
.CommandType = xlCmdSql
.CommandText = Array(ArrSQL)
.RowNumbers = False
.FillAdjacentFormulas = True
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceDataFile = DbfFile
.Name = BaseNameDbfFile
.Refresh BackgroundQuery:=False
End With

End Sub

Function GetDBFFile() As String
Dim fld As FileDialog
Set fld = Application.FileDialog(msoFileDialogFilePicker)
With fld
.Filters.Clear
.Filters.Add "DBF Files", "*.DBF"
If .Show Then GetDBFFile = .SelectedItems(1)
End With
End Function


Η ώρα είναι 14:56.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2