Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
- W programie Excel otwórz wyeksportowane tabele jako typ dBase IV (*.dbf) z programu Access.
- 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 .
- Po sformatowaniu komórek wyeksportuj arkusz kalkulacyjny jako plik dBase IV. Aby to zrobić, wykonaj następujące kroki.
- W menu Plik kliknij polecenie Zapisz jako.
- 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