Veröffentlicht 15. Mai 200223 j Hallo, kann mir da jemand vielleicht erklären, was ich da falsch gemacht habe?? Option Compare Database Option Explicit Dim strTest As String strTest = InputBox(Prompt:="Bedingung eingeben", Title:="Eingabe") Set db = CurrentDb Set rs = db.OpenRecordset("SELECT SAMPLE.LOT_ID, SAMPLE.SMP_NO, CHARACTERISTIC.CHR_NAME, ATTRIBUTE_TEST.ATS_ERROR_COUNT, SAMPLE.PER_ID, to_char (sample.SMP_DATE,'yyyymmdd') "Tag", to_char (sample.SMP_DATE,'hhmi am') "Zeit", LOT.LOT_START , MAN_ORDER.MOR_TRACK, MAN_ORDER.SYS_ID FROM PDV22.ATTRIBUTE_TEST ATTRIBUTE_TEST, PDV22.CHARACTERISTIC CHARACTERISTIC, PDV22.LOT LOT, PDV22.MAN_ORDER MAN_ORDER, PDV22.SAMPLE SAMPLE WHERE SAMPLE.LOT_ID = LOT.LOT_ID AND MAN_ORDER.SYS_ID = = '" & strTest & "' AND SAMPLE.LOT_ID = ATTRIBUTE_TEST.LOT_ID AND ATTRIBUTE_TEST.SMP_NO = SAMPLE.SMP_NO AND ATTRIBUTE_TEST.CHR_NO = CHARACTERISTIC.CHR_NO AND LOT.MOR_NO = MAN_ORDER.MOR_NO And LOT.LOT_START <= sysdate AND SAMPLE.TTP_CODE=4 order by MAN_ORDER.SYS_ID, MAN_ORDER.MOR_TRACK, CHARACTERISTIC.CHR_NAME, sample.SMP_DATE;) Danke & Gruß Chris;-)
15. Mai 200223 j Ich versuche gerade, mich da einzilesen. Wenn's übersichtlicher wäre, wäre das einfacher, sich da einzulesen. Vielleicht hast du in diesem Spaghetti-String einfach ein Komma, oder ein Leerzeichen zuviel oder weggelassen ? UPDATE: Du hast geschrieben: Set rs = db.OpenRecordset("SELECT usw. , aber den String nicht mit einem " vor der *abschliessenden* Klammer (gaanz am Ende) abgeschlossen. Könnte es das sein ?
15. Mai 200223 j Hmmm ok... Das war es nicht... Jetzt meckert die Kiste nur noch rum wegen dem Teil "Tag" und "Zeit".... Wahrscheinlich muss ich das irgendwie anders lösen. Ich glaube, dass er die "Gänsefüschen" als Ende des Strings ansieht. Kann deshalb mit Tag nix anfangen.... Da gabs doch mal was mit ..." & chr(??) & " Tag " & chr(??) & ".... Jetzt müsste ich nur noch die Zahl vom Gänsefüschen wissen, dann könnte ich das nochmal versuchen... Ist das der ASCII Code? Gruß Chris;-)
15. Mai 200223 j Original geschrieben von ChrisDaHub Da gabs doch mal was mit ..." & chr(??) & " Tag " & chr(??) & ".... Jetzt müsste ich nur noch die Zahl vom Gänsefüschen wissen, dann könnte ich das nochmal versuchen... Ist das der ASCII Code? Gruß Chris;-) ja. isses. dein gänsefüsschen ist glaub ich 34 oder so... weiss ich nich so genau...
15. Mai 200223 j Jetzt bringt er schonmal keinen fehler mehr Nur wie bekomm ich das jetzt auf nen Button in einem Formular unter Access 97 ? Wer ist denn da Profi? Gruß Chris
15. Mai 200223 j Button setzten, Rechtsklick drauf, Eigenschaften, Ereignisse, Beim Klicken -> Ereignisprozedur, ... klicken, Code reinkopieren... Gruß JayN P.S. Ich hoffe, ich habe die Frage richtig verstanden....
15. Mai 200223 j HI, Danke für die schnelle Antwort... Hab ich so gemacht wie vorgegeben. Jetzt kommt nur eine Fehlermeldung: Er sagt " Fehler beim Kompilieren: Außerhalb einer Prozedur ungültig!" Dann geht er in den VB-Editor und markiert folgende Stelle: strTest = InputBox("Nach welcher Kundennummer möchten Sie suchen?","Frage") Jetzt verzweifel ich bald..... *heul* Chris
15. Mai 200223 j Der Aufruf muss innerhalb einer Prozedur oder Funktion passieren. sub name-der-prozedur (<parameter, falls noetig, hier rein>) <hier deine anweisungen> end sub oder function name-der-funktion (<parameter, falls noetig, hier rein>) as <rueckgabetyp> <hier deine anweisungen> name-der-funktion = <rueckgabewert> end function Die Teile zwischen <> musst du Deinen Anforderungen anpassen;)
16. Mai 200223 j Nachdem Du, die von mir genannten Schritte getan hast, erstellt Access einen Prozedur-Rahmen -> Sub - End Sub. Dazwischen mußt Du Deinen Code einfügen!
16. Mai 200223 j OK - Jetzt versucht er wenigstens schon mal was auszuführen.... Jedoch leider nur mit Fehlermeldung. Er sagt, dass ich einen Syntaxfehler gemacht habe. Fehlender Operator in Abfrageausdruck. :confused: Er markiert mir die Stelle, die ich hier blau dargestellt habe: Set rs = db.OpenRecordset("SELECT SAMPLE.LOT_ID, SAMPLE.SMP_NO, CHARACTERISTIC.CHR_NAME, ATTRIBUTE_TEST.ATS_ERROR_COUNT, SAMPLE.PER_ID, to_char (sample.SMP_DATE,'yyyymmdd') " & Chr(34) & "Tag" & Chr(34) & ", to_char (sample.SMP_DATE,'hhmi am') " & Chr(34) & "Zeit" & Chr(34) & ", LOT.LOT_START , MAN_ORDER.MOR_TRACK, MAN_ORDER.SYS_ID FROM PDV22.ATTRIBUTE_TEST ATTRIBUTE_TEST, PDV22.CHARACTERISTIC CHARACTERISTIC, PDV22.LOT LOT, PDV22.MAN_ORDER MAN_ORDER, PDV22.SAMPLE SAMPLE WHERE SAMPLE.LOT_ID = LOT.LOT_ID AND MAN_ORDER.SYS_ID = = '" & strTest & "' AND SAMPLE.LOT_ID = ATTRIBUTE_TEST.LOT_ID AND ATTRIBUTE_TEST.SMP_NO = SAMPLE.SMP_NO AND ATTRIBUTE_TEST.CHR_NO = CHARACTERISTIC.CHR_NO AND LOT.MOR_NO = MAN_ORDER.MOR_NO And LOT.LOT_START <= sysdate AND SAMPLE.TTP_CODE=4 order by MAN_ORDER.SYS_ID, MAN_ORDER.MOR_TRACK, CHARACTERISTIC.CHR_NAME, sample.SMP_DATE;") Ich kann da aber keinen Fehler finden... chris
16. Mai 200223 j Kannst Du die Anweisung nicht ein bißchen formatieren? Einrücken, Großschreibung bei SQL-Befehlen, Kleinschreibung bei Rest? So ist es für mich schwierig mich da einzulesen und einzudenken. Gruß JayN
16. Mai 200223 j to_char (sample.SMP_DATE,'yyyymmdd') Was soll das für ein(e) Befehl/Funktion sein? SQL oder programmintern?
16. Mai 200223 j WHERE SAMPLE.LOT_ID = LOT.LOT_ID AND MAN_ORDER.SYS_ID = = '" & strTest & "' AND SAMPLE.LOT_ID Was sollen die zwei "="-Zeichen? Passt das?
16. Mai 200223 j Original geschrieben von JayN to_char (sample.SMP_DATE,'yyyymmdd') Was soll das für ein(e) Befehl/Funktion sein? SQL oder programmintern? Das ist ein SQL-Befehl. Er gibt mir das Datumsfeld im Format "yyyymmdd" zurück.
16. Mai 200223 j Diesen Befehl finde ich in der Access-Hilfe nicht. Sicher, dass er (in dieser Form) in Access existiert?
16. Mai 200223 j Naja - mehr oder weniger... Es ist ein SQL-Befehl... Der Befehl soll ja eigentlich von der Oracle Datenbank (AIX Maschine) verarbeitet werden... Wird der nicht einfach so übertragen??? Habs jetzt mal mit "AS" versucht... Das hat er genommen.... Nur jetzt hab ich nen Laufzeitfehler 424...... Mal sehn, ob ich darüber was auf ner TechNet CD von MS finde... Chris;-)
21. Mai 200223 j Moin ! da ich ziemlich viel mit Access mache, dacht ich geb ich mal meinen Senf dazu... zu der Anweisung: to_char (sample.SMP_DATE,'yyyymmdd') " & Chr(34) & "Tag" & Chr(34) & ", ein Problem sind die " Chr(34) " Anweisungen, die funzen nich, lass sie einach weg oder nimm eckige Klammern wenns mehre Worte sind: "select blablub.braselschasel as Tag, ...." bzw. "select blablub.braselschasel as [super Tag],..." das andere Problem ist, daß meines Wissens die " to_char(...) " Anweisung nur unter Oracle funzt, Access kennt die nicht. Um das Datum im "JJJJMMTT" auszugeben fällt mir nur folgendes ein: DateSerial(Year(sample.SMP_DATE),Month(sample.SMP_DATE),Day(sample.SMP_DATE)) AS Tag, (Ich weiss ist lang, vielleicht hat einer ne bessere Idee) der Fehler "Fehlender Operator in Abfrageausdruck" kommt von dieser Stelle: AND MAN_ORDER.SYS_ID = = '" & strTest & "' da ist ein Gleichzeichen zuviel (hat JayN oben schon bemerkt, ich weis nur noch mal drauf hin ) das war es so auf den ersten Blick, hoffe es hilft Dir weiter! gruß Christian ---------------------------------------------------------------------------------- "Schwerer Ausnahmefehler" - wenn das mal ne Ausnahme wär...
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.