Wydaje się, że MS Access obsługuje null w kodzie, ale nie mogę na całe życie dowiedzieć się, jak wprowadzić wartość zerową bezpośrednio w tabeli. To jest denerwujące, ponieważ po wpisaniu w pole liczby, nie można jej nigdy usunąć/ustawić na wartość null. Normalnie zezwoliłoby to na ciągi o zerowej długości, ale program Access traktuje eksportowanie XML łańcucha znaków o wartości zerowej i zerowej w inny sposób. Wartość null eliminuje powiązany znacznik XML, a ciąg o zerowej długości wysyła pusty znacznik.W jaki sposób użytkownik wstawi pustą wartość w MS Access?
Odpowiedz
OK, nie sądzę, że jest to problem łatwy do rozwiązania i moje pierwotne pytanie było trochę niecelne. Problem dotyczy nie tyle wartości null, ile ich dotyczy, podobnie jak sposobu, w jaki tabela została pierwotnie utworzona. Jeśli używasz pliku xsd do tworzenia tabel, które planujesz eksportować, coś dzieje się pod maską w programie Access, co powoduje, że te pola są traktowane trochę inaczej niż pola utworzone za pomocą edytorów.
Jedynym znalezionym rozwiązaniem było utworzenie nowego pola w tabeli, zmiana nazwy starego pola, skopiowanie danych ze starego pola do nowego pola i usunięcie starego pola.
Po wykonaniu tej czynności puste pola, które zawierały dane w jednym punkcie, nie są już uwzględniane w wynikach XML. Prawdopodobnie nie jest to najlepszy sposób na zrobienie tego i nadal nie wiem dokładnie, dlaczego tak się dzieje, ale przynajmniej uda mi się ominąć problem.
Czy mówisz o konieczności zrobienia tego w widoku arkusza danych? Jeśli potrzebne, aby to zrobić w kwerendzie aktualizacji, można to zrobić tak:
UPDATE test SET test.test = Null;
Tak, mówiłem o zrobieniu tego w widoku arkusza danych. – anopres
Wystarczy usunąć wszystkie znaki w kolumnie i dostępu wstawi wartość null dla Ciebie, jeśli coumn na to pozwala.
Nie, jeśli pole jest ustawione na zezwalanie na łańcuchy o zerowej długości. –
@ David-W-Fenton dla mnie działa jak określono przez @ bang. Mam kolumnę 'NOT NULL varchar' w połączonej tabeli do SQL Server i' allow zero-length string = yes' w programie Access. Nadal, gdy usuwam tekst, nie wstawia on pustego łańcucha, zamiast tego podaje zerowy błąd wstawienia, że kolumna nie jest wariantem typu. –
Widzę, zachowanie jest inne dla tabel połączonych ODBC http://stackoverflow.com/a/22203637/2224701 –
Właściwie szukam sposobu, aby osoba prowadząca zajęcia zrobiła wpis bezpośrednio w tabeli. W MSSQL możesz po prostu nacisnąć ctrl-0 i wstawić wartość zerową. Usunięcie wszystkich znaków nie działa. Zamiast wartości pustej pozostaje pusty ciąg znaków. Nie są traktowane tak samo przez Access w celach eksportowych.
Myślę, że to, co zamierzam zakończyć, to utworzenie pliku xslt do użycia podczas eksportu, który eliminuje puste tagi. W ten sposób użytkownik nie może naprawdę odróżnić.
Na pewno dobrze byłoby móc wprowadzić wartość zerową.
Czy ustawienie opcji "Zezwalaj na ciąg o zerowej długości" w pomocy definicji tabeli? Może wymusić, że pusty łańcuch będzie interpretowany jako NULL.
Nie "może", ale WILL. Jeśli nie używasz ZLS jako znaczącej wartości, która różni się od Null, nie ma powodu, aby jakiekolwiek pole pozwalało na przechowywanie ZLS. Z pewnością użytkownik jest nieprzyjazny. –
naciśnij ctrl-0 i wstawiono zero.
To nie działa z programem Access 2007. Jak to działa? – anopres
Usunięcie wszystkich znaków będzie działało, ale dostęp jest nieco zmienny. Naciśnięcie backspace lub delete nie zadziała, chyba że w polu znajdują się znaki. Uważam, że najlepiej jest wpisać kilka znaków, wybrać wszystko i nacisnąć przycisk "usuń", zmienić ostrość i zmienić rekord. Po tym wszystkim, jeśli uruchomisz zapytanie szukające "jest puste", to rekord zostanie znaleziony.
Po sukcesie wprowadzono kilka znaków zgodnie z sugestią, a następnie za pomocą F2, aby wybrać, a następnie usunąć, ale to nie działa konsekwentnie –
- 1. Hiperłącze w raporcie MS Access
- 2. Dane przestawne w MS Access
- 3. Udostępnianie pomocy w formie w MS Access
- 4. Zapobieganie zapisywaniu rekordów zamykających w MS Access
- 5. Wartość automatycznego numerowania ostatniego wstawionego wiersza - MS Access/VBA
- 6. MS Access sporządziły sprawozdania
- 7. Nhibernate i MS Access
- 8. MS Access Properties
- 9. MS Access biblioteka dla Pythona
- 10. Wybierz rekordy pomijając wiersze w MS Access
- 11. Jak utworzyć procedurę przechowywaną w MS Access?
- 12. Czy mamy transakcje w MS-Access?
- 13. Tworzenie View w MS Access 2007
- 14. Pobieranie listy tabel w pliku MS Access
- 15. W jaki sposób `({...})` zwraca wartość?
- 16. sterownik JDBC połączenia MS Access
- 17. Wykryj pustą wartość w wierszu natychmiastowym
- 18. MySQL wylicza pustą wartość
- 19. ustawić wartość pustą w kolumnie klucza obcego?
- 20. Jak wypełnić wartość pola tekstowego na podstawie wartości w polu Combo w MS Access 2007?
- 21. Nowy administrator MS Access, modyfikacja istniejącego makra
- 22. Jak sprawdzić wartość pustą w java
- 23. Linq zastępuje pustą wartość pustą inną wartością
- 24. Programowo twórz połączenia ODBC i tabele linków w MS Access
- 25. MS Access SQL, zmiana typu danych
- 26. MS Access to Oracle easy Conversion/Migration
- 27. Pobieranie danych JSON adresu URL w MS Access
- 28. rxjs w jaki sposób emitujesz pojedynczą wartość?
- 29. W jaki sposób wyemitujesz domyślną wartość typu?
- 30. W jaki sposób przeliczana jest wartość NSObject?
W jaki sposób wprowadzasz dane do tabel? Uruchomiłem eksport XML z danymi, które wprowadziłem przy użyciu widoku tabeli, i pomyślnie dodałem i usunięto kolumnę zgodnie z sugestią. – LeppyR64
Mówisz, że nie chcesz zezwalać na ciągi o zerowej długości? – LeppyR64
Nie ma czegoś takiego jak "bezpośrednio w tabeli". Prawdopodobnie odnosisz się do formularza, który jest powiązany z zestawem rekordów, prawdopodobnie podanym w interfejsie użytkownika dowolnej wersji MS Access, z której korzystasz. Czy też "bezpośrednio" oznacza, że używasz kodu SQL? – onedaywhen