Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Fehler "#Typ!"

Begonnen von datekk, April 03, 2013, 15:55:38

⏪ vorheriges - nächstes ⏩

datekk

Also was so richtig Bescheiden ist bei Access 2013 ist die Hilfe... Es gibt keine...

Folgende Situation: Habe ein Endlosformular mit Datensätzen welche ein Ja/Nein Feld beinhalten. Ich möchte nun ganz einfach haben, dass bei gesetztem Haken im Textfeld eine 1, und ohne eine 2 kommt. Die Spalte mit dem Haken heißt "Marke". Die Formel sieht wie folgt aus: =Wenn([Marke]=True;1;2)

Leider erhalte ich als Ergebnis der Berechnung die Fehlermeldung #Typ!. Es gibt nirgends einen Hinweis, was mir das Programm damit sagen will. Ich bin schon so weit gekommen, dass Access ein Problem mit dem Ausdruck [Marke]=True hat.

Könnt Ihr mir helfen?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

bahasu

Hi,

ist  [Marke] als "Ja/Nein"-Feld deklariert?

ansonsten wegen "Textfeld" => Wenn([Marke]=True;"1";"2")

Harald
Servus

datekk

Hallo Harald,

ja, es ist ein Ja/Nein Feld - es wird mit einem Haken angezeigt.

Auch wenn ich die Eingabe so mache, wie Du es vorschlägst, erhalte ich die Fehlermeldung #Typ! Wie gesagt, Access scheint mit [Marke]=True ein Problem zu haben. Es scheint so, als ob es so nicht geschrieben wird. In einem anderen Forum habe ich gelesen, dass der Ausdruck so heißen muss: wenn([Marke];1;2) aber dann erhalte ich in jeder Zeile eine 1.

Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

Stapi

Hallo datekk

Ein Ja/nein feld liefert immer ein Wert zurück. Kein Tur oder False sondern wie folgt.
Bei ja = -1
Bei Nein = 0
Grüße aus dem schönen NRW
Stefan

datekk

Gut und schön, aber wie sieht dann die Wenn Funktion aus??? Denn =Wenn([Marke]-1;"1";"2") = #Typ! oder =Wenn([Marke]=-1;"1";"2") = #Typ!
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

bahasu

Hi,

probier mal den Anhang.

Gibt Formular, das eine Abfrage als Datenquelle hat. Dort wird Marke in Text gewandelt. Das gewandelte Feld wird im Formular angezeigt.

Harald

[Anhang gelöscht durch Administrator]
Servus

datekk

Ah, ist ein Lösungsansatz.. Aber wie hast Du das Feld "Text2" im Formular erzeugt? Das erschließt sich mir nicht und wenn ich auf Layout gehe, wird das Formular zerschossen... Ist da was mit SQL im Spiel oder ist einfach nur das Feld aus der Abfrage zugefügt worden?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

Stapi

Hallo

Dem Formular liegt als Datenherkunft die Abfrage in der die Umschaltung gemacht wird
Grüße aus dem schönen NRW
Stefan

datekk

Eigentlich total blöde Lösung, nur für so einen Umstand ne extra Abfrage erstellen zu müssen.. Manchmal fragt man sich echt bei dem Programm was die Programmierer sich hier gedacht haben.....
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

datekk

trotzdem vielen Dank für die Lösung... :)
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

Stapi

Hallo

Wenn du in einem Formular ein Feld mit dem Ja/Nein umschalten möchtest geht das natürlich auch ohne Abfrage dann aber mit VBA Code

If Marke = -1 then
  Me.dein_feld=2
else
  Me.dein_feld=1
end if
Grüße aus dem schönen NRW
Stefan

daolix

Hallo

evtl zickt Acc ja rum weilMarke eine reserviertes Wort ist. benenn es um( in tb und ggf im Formular) dann sollte dein vorhaben auch so klappen.

datekk

ok, am Wort "Marke" lag es nicht.

Wie und wo gebe ich die SQL-Anweisungen aus dem Beitrag von Stapi ein? Als Ereignis?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

69bruno

SQL ?

Stapi hat Dir VBA-Code offeriert  ;)

Und ja, der gehört in ein Ereignis......davon gibt es sehr viele, daher musst Du Dir erst im klaren sein, wann das Feld seinen Wert ändern soll.
Du kannst es zB im "Current" Ereignis des Formulars verwenden, dann würde bei jedem Datensatzwechsel den Wert einstellen.
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If

MzKlMu

#14
Hallo,
ZitatEigentlich total blöde Lösung, nur für so einen Umstand ne extra Abfrage erstellen zu müssen.. Manchmal fragt man sich echt bei dem Programm was die Programmierer sich hier gedacht haben.....
Man erstellt für Access immer eine Abfrage und greift nie auf die Tabelle direkt zu. Insofern, haben sich die Programmierer schon was gedacht. Und mit Verlaub, wenn man den Unterschied zwischen SQL und VBA nicht kennt, sollte man mit solchen Aussagen eh vorsichtig sein.  ;D ;D

So eigenartig wie sich das anhört, aber der Zugriff auf die Daten geht mit einer Abfrage schneller als wie mit der Tabelle direkt.
Bein Zugriff über eine Tabelle erstellt Access intern auch eine Abfrage kompiliert diese und erstellt den internen Ablaufplan zur Darstellung der Abfrage. Das erfordert jedes mal Zeit. Eine gespeicherte Abfrage liegt fertig kompiliert mit Ablaufplan vor und wird sofort ausgeführt.
Weiterhin enthält eine Abfrage nur die Felder die man benötigt, was ein Speicher und Geschwindigkeitsvorteil sein kann.
Und schließlich, die Datensatzreihenfolge einer Tabelle richtet sich nach der Sortierung des Primärschlüssels. Nur die Sortierung der Daten über eine Abfrage ist zuverlässig immer gleich.

Daher: Immer eine gespeicherte Abfrage verwenden, bei großen Datenmengen ist das unerlässlich.

Ich würde hier ohnehin kein Ja/Nein Feld verwenden, sondern eine Optionsgruppe mit Ja/Nein als zwei Optionen. Dann kannst Du gleich die 1 oder die 2 speichern und die Umwandlung entfällt.

@Stapi
Ein Ja/Nein Feld liefert True oder False. -1 und 0 erfordert eine Typumwandlung. Daher ist bei gr0ßen Datenmengen True und False zu bevorzugen.
Gruß Klaus