Access & ASP, inlist
dey
- datenbank
0 Kay0 dey0 Frank aus Ulm
Servus
Ich habe 1 Problem mit 2 Möglichen Lösungen.
Ich möchte mir Datensätze mit der Bedingung importa > 99 ausgeben lassen.
a) Wenn ich versuche importa als Zahl zu definieren funktioniert die Abfrage wunderbar aber das command "update..." akzeptiert keine leere Folge a'la "update events set importa = , day1 ='Sa..." mehr.
Der Wert hinter importa = kommt aus einer Variablen die einen Wert oder auch keinen enthalten kann
b) Wenn ich importa als Text definiere funktioniert ">" nicht mehr. Ich bräuchte ein sql äquivalent zu "inlist" (=VB)
Eine Lösung füe a) wär mir lieber!
bydey
Hallö,
ist denn dein "import"-Feld auch ein Integer-Feld "Zahl"? Und lässt du leere Eingabe zu? Du köntest auch die Variable vorher abfragen. Wenn nix drinsteht, setzt du einfach 0 rein. Access hat sich da etwas eigen :-)
MfG, Kay
Servus Kay
Hallö,
ist denn dein "import"-Feld auch ein Integer-Feld "Zahl"?
Nein: long
Und lässt du leere Eingabe zu?
Ja: Eingabe erforderlich = nein
Du köntest auch die Variable vorher abfragen. Wenn nix drinsteht, setzt du einfach 0 rein. Access hat sich da etwas eigen :-)
Nein: Zwecks Übersichtlichkeit ist "" besser als 0. Ich zeige an anderer Stelle alle Werte von importa.
bydey
Hallo Bydey,
"" ist eine Zeichenkette und passt nicht in ein Long-Feld (nur Zahlen)!
Wie schon gesagt: Ich würd' einfach 'ne 0 reinsetzen und bei der Aussage kannst du die 0-Felder ja wegfiltern :-)
MfG, Kay
Servus Kay
Hallo Bydey,
Das ist nicht der Name sondern die Verabschiedung: BYe bye DEY...
"" ist eine Zeichenkette und passt nicht in ein Long-Feld (nur Zahlen)!
Ok mein Fehler: ich habe das "" nur zur visualisierung benutzt. An der Stelle steht einfach nix oder NULL oder nada
Das ist die ausgabe mit response.write:"update events set importa = , day1 ='Sa..."
und siehe da "= " ein nix
Wie schon gesagt: Ich würd' einfach 'ne 0 reinsetzen und bei der Aussage kannst du die 0-Felder ja wegfiltern :-)
Möglich aber schwer hoplerig
MfG, Kay
bydey
Servus
Mir ist grad ne dritte Lösung eingefallen:
c) ein select in dem ich via format importa von text nach zahl wandel und vergleichen lasse:
select importa, format(importa,????????) as z_importa from table where z_importa > 99
Könnte mir jemand den format(importa,????????) richtig ziehen. Ich glaube ich suche sowas wie int() oder so.
Ich habe 1 Problem mit 2 Möglichen Lösungen.
Ich möchte mir Datensätze mit der Bedingung importa > 99 ausgeben lassen.a) Wenn ich versuche importa als Zahl zu definieren funktioniert die Abfrage wunderbar aber das command "update..." akzeptiert keine leere Folge a'la "update events set importa = , day1 ='Sa..." mehr.
Der Wert hinter importa = kommt aus einer Variablen die einen Wert oder auch keinen enthalten kannb) Wenn ich importa als Text definiere funktioniert ">" nicht mehr. Ich bräuchte ein sql äquivalent zu "inlist" (=VB)
Eine Lösung füe a) wär mir lieber!
bydey
Hi, hallo
"Eingabe erforderlich" ist nicht gleichbedeutend mit "NULL -Werte zugelassen"
Du musst dich hier wirklich entscheiden, ob du ne "0" beim Updaten reinschreibst und diese dann bei einer späteren Ausgabe maskierst oder ob du mit Char-Werten arbeitest und in SQL mit den nativen Konvertierungsfunktionen deines DBMS werkelst, dann kannst du auch > anwenden. Vorausgesetzt dein DBMS unterstützt soetwas.
Tschau, tschüß,
Frank
Servus Frank
OK, Lösung a) ist also nicht.
Wie sieht es mit b) und c) aus?
bydey
Hi, hallo
ja, b und c zusammen, nur, daß du aus "" keine Zahl machen kannst.
Die genaue Konvertierung sollte dir dein DBMS sagen können: CLng() o.ä.
aber wie gesagt, CLng("") führt zu "type mismatch"
Tschau, tschüß,
Frank
Servus
Von Blindheit geschlagen: man sollte mir den Besuch des Forum für eine Woche verbieten, so als Strafe!
Das Problem war: ich möchte Einträge von 1 bis x und von 100 bis x+101 von einander unterscheiden:
1. Vergleich soll 1 und 101 erkennen = select case & case "1","101"
2. Abfrage soll alle werte grösser 99 filtern.
Das ergab Probleme mit Int, > und NULL
Die Lösung ist:
Meine Einträge lauten nun 1 - x und n0 - nx
1. Vergleich soll 1 und n1 erkennen = select case & case "1","n1"
2. Abfrage soll alle werte mit n filtern = where importa like 'n%'.
bydey