Zum Inhalt springen

ACCESS + VBA - Programmierung... Was mach ich da falsch?


ChrisDaHub

Empfohlene Beiträge

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;-)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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;-)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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;")

:rolleyes:

Ich kann da aber keinen Fehler finden...

chris

Link zu diesem Kommentar
Auf anderen Seiten teilen

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;-) :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...