Udostępnij za pośrednictwem


Program Access eksportuje długie liczby całkowite jako podwójny typ danych z miejscami dziesiętnymi w formacie dBase IV (.dbf)

Oryginalny numer KB: 891775

Symptomy

Po utworzeniu tabeli programu Microsoft Office Access zawierającej długie liczby całkowite, a następnie wyeksportowaniu tej tabeli jako typu dBase IV (.dbf), liczby są konwertowane na podwójny typ danych i będą pokazywać miejsca dziesiętne.

Możesz na przykład wyeksportować następującą tabelę:

JEDNOSTEK
23411
111111111
1121212

Po zaimportowaniu i wyświetleniu danych w bazie danych dBase IV dane będą wyglądać podobnie do następujących:

JEDNOSTEK
23411.00000
111111111.00000
1121212.00000

Uwaga

Podczas tworzenia pola liczbowego w tabeli w programie Access właściwość FieldSize służy do kontrolowania ilości miejsca przydzielonego dla określonego pola. W przypadku pól liczbowych można wybrać jeden z następujących typów liczbowych z listy:

  • Bajtów
  • Liczba całkowita
  • Długa liczba całkowita
  • Pojedyncze
  • Podwójne
  • Identyfikator replikacji
  • Wartość dziesiętna

Domyślnie ustawienie pól liczbowych to Długa liczba całkowita. Wartość Long Integer przechowuje liczby całkowite, które wahają się od około -2 miliardów do +2 miliardów. Możesz też wybrać wartość Podwójna, aby przechowywać liczby z liczbami dziesiętnym.

Przyczyna

Ten problem występuje, ponieważ w bazie danych dBase nie ma typu danych liczba całkowita. Baza danych dBase używa typów danych liczbowych lub zmiennoprzecinkowych. Dostęp mapuje długie liczby całkowite na typ danych liczbowych w bazie danych dBase.

Obejście problemu

Aby obejść ten problem, użyj jednej z następujących metod:

Metoda 1. Modyfikowanie pliku bazy danych w bazie danych dBase

Zmodyfikuj projekt pliku bazy danych po dodaniu go do katalogu dBase. Na przykład ustaw kolumnę Dec na wartość 0 (zero). Aby uzyskać więcej informacji na temat projektowania plików bazy danych w bazie danych dBase, zobacz dokumentację bazy danych dBase.

Metoda 2. Formatowanie danych przy użyciu programu Microsoft Office Excel

Użyj programu Excel, aby sformatować dane w wyeksportowanych tabelach. Aby to zrobić, wykonaj następujące kroki.

  1. W programie Excel otwórz wyeksportowane tabele jako typ dBase IV (*.dbf) z programu Access.
  2. Sformatuj komórki, które nie są poprawnie sformatowane. W tym celu zaznacz komórki, a następnie kliknij pozycję Komórki w menu Format .
  3. Po sformatowaniu komórek wyeksportuj arkusz kalkulacyjny jako plik dBase IV. Aby to zrobić, wykonaj następujące kroki.
    1. W menu Plik kliknij polecenie Zapisz jako.
    2. W polu Zapisz jako typ kliknij pozycję DBF 4 (dbase IV) (*.dbf), a następnie kliknij przycisk Zapisz.

Metoda 3. Formatowanie danych przy użyciu przykładowego kodu

Firma Microsoft podaje przykłady programowania tylko dla celów ilustracyjnych, nie udzielając żadnej rękojmi, wyrażonej wprost ani dorozumianej, w tym także, ale nie tylko, dorozumianej rękojmi co do przydatności handlowej lub do określonych celów. W tym artykule zakłada się, że czytelnik zna demonstrowany język programowania oraz narzędzia używane do tworzenia i debugowania procedur. Wykwalifikowani pracownicy Pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu działania określonej procedury. Nie będą oni jednak modyfikować tych przykładów w celu dodania funkcji ani konstruować nowych procedur celem dostosowania ich do potrzeb użytkownika.

Poniższy przykład kodu umożliwia zautomatyzowanie procesu formatowania danych. W przykładzie zostanie zapisana tabela jako plik tekstowy. Następnie zautomatyzuje program Excel, aby otworzyć plik tekstowy, a następnie zapisać go w formacie dBase IV.

Uwaga

Musisz zmienić nazwy plików w tym przykładzie kodu, aby były zgodne z nazwami plików.

Sub exportFormat()

    Dim xlApp       As Excel.Application
    Dim xlBook      As Excel.Workbook

    Const SAVETEXT = "C:\testValues.txt"
    Const SAVEDBF = "C:\testDBF.dbf"

    ' Save the table as a text file.
    DoCmd.TransferText acExportDelim, , "Table1", SAVETEXT, TRUE

    ' Set a reference to the Application object.
    Set xlApp =        ' Set a reference to the Workbook object.
    Set xlBook = xlApp.Workbooks.Open(SAVETEXT, , ,        ' Save the file to dBase IV format.
    xlBook.SaveAs Filename:=SAVEDBF, FileFormat:=xlDBF4
    xlBook.Close savechanges:=False

    xlApp.Quit
    Set xlBook = Nothing
    Set xlApp = Nothing

End Sub