Hallo,
bin gerade etwas am Verzweifeln ???. Versuche seit geraumer Zeit eine strSQL-Anweisung zu realisieren und kriege es einfach nicht hin.
Vielleicht sehe ich schon den Wald von lauter Bäumen nicht. Vielleicht kann mir jemand helfen.
Folgender Code funktioniert in einer normalen Abfrage korrekt. Datensätze werden nach Kriterium gefiltert!
SELECT tblBestandsVeränderung.BestandsVeränderungID, tblBestandsVeränderung.[Derzeit auf Lager], tblBestandsVeränderung.BestellNrSelters FROM tblBestandsVeränderung WHERE tblBestandsVeränderung.BestellNrSelters = [Formulare]![frmArtikelNeuerBestand]![BestellNrSelters] ORDER BY tblBestandsVeränderung.BestandsVeränderungID;
Setze ich diesen aber in eine strSQL Anweisung:
strSQL = "SELECT tblBestandsVeränderung.BestandsVeränderungID, tblBestandsVeränderung.[Derzeit auf Lager], tblBestandsVeränderung.BestellNrSelters FROM tblBestandsVeränderung WHERE tblBestandsVeränderung.BestellNrSelters = [Formulare]![frmArtikelNeuerBestand]![BestellNrSelters] ORDER BY tblBestandsVeränderung.BestandsVeränderungID;"
Dann bekomme ich eine Fehlermeldung: "1 Parameter wurde erwartet, aber es wurden zu wenig Parameter übergeben! Code 3061
Nun habe ich verschiedene Sachen ausprobiert. Der Fehler liegt wohl im WHERE Kriterium. Setzt ich dort einen einfachen Wert ein, z.B. '5414' funktioniert es! Dieser Wert soll aber abgefragt werden da er sich ändert. So wie laut code. Setze ich das ganze Kriterium in einfache Anführungsstriche, bekomme ich die Meldung "Keine Datensätze vorhanden" obwohl welche da sind. Ich gehe mal davon aus, dass er dann die Formel als Text einsetzt, und natürlich nichts findet.
bin mit meiner Weisheit ziemlich am Ende. Es kann eigentlich nur eine Kleinigkeit sein.
Bitte um Hilfestellung ... ???
Hallo,
versuch mal den String auf diese Weise aufzubauen:
strSQL = "SELECT tblBestandsVeränderung.BestandsVeränderungID, tblBestandsVeränderung.[Derzeit auf Lager], tblBestandsVeränderung.BestellNrSelters
FROM tblBestandsVeränderung WHERE tblBestandsVeränderung.BestellNrSelters =" & Forms!frmArtikelNeuerBestand!BestellNrSelters & " ORDER BY tblBestandsVeränderung.BestandsVeränderungID;"
bzw. wenn sich der Code im Formular 'frmArtikelNeuerBestand' befindet:
strSQL = "SELECT tblBestandsVeränderung.BestandsVeränderungID, tblBestandsVeränderung.[Derzeit auf Lager], tblBestandsVeränderung.BestellNrSelters FROM tblBestandsVeränderung WHERE tblBestandsVeränderung.BestellNrSelters =" & Me!BestellNrSelters & " ORDER BY tblBestandsVeränderung.BestandsVeränderungID;"
.... alles unter der Voraussetzung dass das Feld 'tblBestandsVeränderung.BestellNrSelters ' ein Zahlenfeld ist -
sollte es ein Textfeld sein und das Formularfeld 'BestellNrSelters' enthält Text dann muss der
Verweis auf das Formularfeld ZUSÄTZLICH in einfache Hochkommata eingeschlossen werden:
strSQL = "SELECT tblBestandsVeränderung.BestandsVeränderungID, tblBestandsVeränderung.[Derzeit auf Lager], tblBestandsVeränderung.BestellNrSelters
FROM tblBestandsVeränderung WHERE tblBestandsVeränderung.BestellNrSelters ='" & Forms!frmArtikelNeuerBestand!BestellNrSelters & "' ORDER BY tblBestandsVeränderung.BestandsVeränderungID;"
bzw:
strSQL = "SELECT tblBestandsVeränderung.BestandsVeränderungID, tblBestandsVeränderung.[Derzeit auf Lager], tblBestandsVeränderung.BestellNrSelters FROM tblBestandsVeränderung WHERE tblBestandsVeränderung.BestellNrSelters ='" & Me!BestellNrSelters & "' ORDER BY tblBestandsVeränderung.BestandsVeränderungID;"
HTH
Hallo database,
;D das wars!!! Es war die Variante mit den Hochkommata. Außerdem fehlte mir das "&"!!! Wird allerdings in keiner Dokumentation als erforderlich so dargestellt.
Super, nun Funktioniert es einwandfrei.
Hab vielen Dank.
Gruß
AvalonStealth
Hallo,
der eigentliche Knackpunkt in Deiner Version mit dem eingebetteten Formularverweis liegt in der "deutschen" Schreibweise.. Es müsste so lauten:
..
.
tblBestandsVeränderung.BestellNrSelters = [Forms]![frmArtikelNeuerBestand]![BestellNrSelters] ORDER BY
.
.
wobei der Version von database natürlich der Vorzug zu geben ist (und auch nur dort der &-Operator vonnöten ist).
Hi,
ZitatWird allerdings in keiner Dokumentation als erforderlich so dargestellt
Der Suchbegriff 'Variablen String VBA' googelts hervor ... ;) ;D
Bitte den Thread in DEINEM ERSTEN Beitrag auf gelöst setzen - dann ist's auch in der Übersicht erkennbar - DANKE
Ich habe quasi das gleiche Problem bei dieser Abfrage.
UPDATE tbl_rezepte SET tbl_rezepte.RZ_Behandlungen_ist = [tbl_rezepte]![RZ_Behandlungen_ist]+1
WHERE (((tbl_rezepte.RZ_ID)= [Formulare]![FM_behandlung_eingabeform]![tf_RZ_ID]));
Wenn ich das formular offen habe und die abfrage aufrufe sagt er er möchte einen Datensatz Aktualisieren was er dann auch macht. Rufe ich die Abfrage über
Private Sub button_behandlung_bearbeiten_save_Click()
If IsNull(Me.tf_patient) = True Then
MsgBox ("Patient auswählen.")
Else
If IsNull(Me.tf_behandlungsart) = True Then
MsgBox ("Behandlung auswählen.")
Else
If IsNull(Me.tf_RZ_ID) = True Then
MsgBox ("Rezept auswählen.")
Else
CurrentDb.Execute "AKT_ABF_behandlung_plus_1" <---Aufruf der Abfrage
DoCmd.RunCommand acCmdSaveRecord
DoCmd.Close acDefault
DoCmd.Requery FM_behandlungen
MsgBox ("Änderung gespeichert.")
End If
End If
End If
End Sub
auf brignt er mir Laufzeit 3061 1 parameter wurder erwartet .....
Hallo,
Hast Du meine Erklärung nicht gelesen?
Alternativ benutz statt dem Abfragenamen den SQL-String und bau den Formularverweis (bzw. gleich den Variablenwert) mit VBA ein.
CurrentDb.Execute "UPDATE tbl_rezepte SET RZ_Behandlungen_ist = [RZ_Behandlungen_ist]+1 WHERE RZ_ID = " & Me![tf_RZ_ID]
Was bezweckst Du mit solchem Code (bzw. dem programmtechnischen Konzept )?
Gelesen habe ich dies. Jedoch frage ich mich warum kann ich dir Abfrage bei geöffnettem Form manuel starten und sie Funktioniert und wenn ich sie über VBA Aufrufe nicht?
Ich möchte damit einen Zähler auslösen. Wird eine Bahandlung hinzugefügt zähle den Aktuellen Wert von tbl_rezepte.BH_einheiten_ist +1
EDIT: Code hat funkioniert. Vielen Dank
Hallo,
Naja, auch hier die Frage: Warum brauchst Du einen Zähler?
Wie auch immer, wenn es so geht, ist es ja ok.
Zum Formularverweis:
Die Umsetzung einer SQL (Abfrage) in die eigentliche Ausführung in der Jet-Engine (DB-System von Access) durchläuft einige Prüfungen/Optimierungen und weitere Massnahmen zur fehlerfreien Ausführung. Dabei werden auch die Formular-Feld-Referenzen aufgelöst, sobald die Abfrage von Access selber gestartet wird. Hier greift die richtige (englische) Schreibweise von FORMS als Referenz auf das Formular-Objekt.
Wird die Abfrage über eine andere Zugriffsmethode (hier: DAO.Execute) angestoßen, kann es sein, dass solche Formularverweise nicht bearbeitet werden und somit ein Fehler entsteht.
Wenn tatsächlich "Forms" in der SQL-Ansicht der Abfrage steht und Currentdb.Execute nicht funktioniert (sofern das Form geöffnet ist) , dann kannst Du anstelle
Docmd.RunSQL
mal probieren. Diese Methode weist im Gegensatz zu Execute Access an, die Abfrage auszuführen, wobei oben erklärter Ablauf angestoßen wird.
Ist das mit dem Zähler so unverständlich?
Es gibt eien Tabelle mit rezepten. Das rezept enhält 20 einheiten. Bei jeder behandlung soll eine dazugezählt werden. und wenn ist = soll ist das rezept voll.
Oder meinst du ich sollte die anzahl der einträge ober eine abfrage auszählen udn vergleichen?
Hallo,
solche "Zähler" (eher eigentlich Laufende Nummer) sind in diesem Zusammenhang ja berechnete Werte und sollten nicht in der DB (Tabelle) gespeichert werden.
Wenn der Tabellenaufbau stimmt, kann jederzeit die akt. Anzahl von Datensätzen (hier Behandlungen zu einem Rezept) per Abfrage (bzw. Domänenfunktion) ermittelt werden. (entspr. Deinem letzten Satz)
Hast du eigendlich recht dann spar ich mir auch das ganze programieren wenn man eine bahndlung ändert sonnst hät ich ja bei rezept a einen wieder zu rechnen müssen und rezept B dann einen weg. Werd mal sehen ob ich das so verarbeiten kann wie ich mir das vorstelle.
Hallo,
stelle mal (in einem neuen Thread) den Tabellenaufbau hier rein und beschreibe unabhängig von den Tabellen und möglichst datailliert, was Du gerne mit der DB anstellen möchtest.
Ich möchte Patienten Kranken Kassen Behandlungen Rezepte erstellen bearbeiten können. geht soweit.
Woran ich gerade Arbeite ist die Funktion das man nur Behandlungen erstellen kann wenn ein entsprechendes Rezept vorhanden ist. Geht auch soweit. ABER: wenn die Behandlungseinheiten erreicht sind soll man keine mehr eintragen können sondern muss entweder die Einheiten erhöhen oder ein neues Rezept eintragen.
[Anhang gelöscht durch Administrator]
Habe es hinbekommen das nun nur Einträge erstellt werden können wenn die Behandlungen noch nicht ausgeschöpft sind.
Hallo,
gut, wenn es geht..
Trotzdem solltest Du nochmal die Datenbeziehungen überprüfen, ob die wirklich so abgebildet sind, wie sie in der Realität zusammenhängen.
(Speziell die Beziehung der Behandlungen zu den Rezepten..)
In php mit Mysql gab es die Möglichkeit sich den SQL string mit werten anstatt der variablen anzeigen zulassen. So finde ich sieht man besser wo man einen fehler hat was Hoch und Gäsne betrifft. Gib es sowas bei access auch?
Hallo,
"Drucke" den SQL-String (bzw. den Inhalt einer entspr. Variablen) mit Debug.Print in das Direktfenster im VBA-Editor.
Danke den befehl hatte ich sogar schon drin nur das Fenster nciht offen.
Allerdings weis ich cniht wie ich den fehler beheben soll.
If Var_hausbesuch = True Then
MsgBox "HB"
strSQL = "UPDATE tbl_behandlungen SET " _
& "tbl_behandlungen.BH_Patienten_ID = '" & [Forms]![FM_behandlung_eingabeform]![tf_patient] & "', " _
& "tbl_behandlungen.BH_Leistungs_ID = '" & [Forms]![FM_behandlung_eingabeform]![tf_behandlungsart] & "', " _
& "tbl_behandlungen.BH_Datum = '" & [Forms]![FM_behandlung_eingabeform]![tf_behandlungsdatum] & "', " _
& "tbl_behandlungen.BH_RZ_ID = '" & [Forms]![FM_behandlung_eingabeform]![tf_RZ_ID] & "', " _
& "tbl_behandlungen.BH_HB = ' & Var_hausbesuch & ', " _
& "tbl_behandlungen.BH_HB_Leistungs_ID = '" & Var_hausbesuchsnummer & "' WHERE " _
& "tbl_behandlungen.BH_ID = " & [Forms]![FM_behandlung_eingabeform]![TF_BH_ID] & ""
Debug.Print strSQL
CurrentDb.Execute strSQL
Else
Resultat
UPDATE tbl_behandlungen SET tbl_behandlungen.BH_Patienten_ID = '13', tbl_behandlungen.BH_Leistungs_ID = '28', tbl_behandlungen.BH_Datum = '29.12.2011', tbl_behandlungen.BH_RZ_ID = '6', tbl_behandlungen.BH_HB = 'Wahr', tbl_behandlungen.BH_HB_Leistungs_ID = '37' WHERE tbl_behandlungen.BH_ID = 333
Habe versucht es alleine hinzubekommen durch setzen von Hochkommas Gänse aber es will einfach nicht. Er setzt mir das ja/nein feld immer aus Falsch
bin mir nicht sicher aber müsste Wahr nicht True lauten?
Auch sind die Hochkommata überflüssig wenn du Zahlenwerte übergibst wenn das Feld eine integer/float-Class ist
Der wert wird aus einer Variable bezogen die ich aus einem Ja7Nein feld auslese. Sollte stimmen.
Zitat von: elvodia am Dezember 29, 2011, 12:57:59
Der wert wird aus einer Variable bezogen die ich aus einem Ja7Nein feld auslese. Sollte stimmen.
Nun das Problem ist das VBA in diesem Fall alles eindeutscht, was aber für den sql-string nicht richtig sein muss ( siehe z.B Übergabe einer Date - Variablen) richtiger ist True ohne Hochkommata.
& "tbl_behandlungen.BH_HB = True, " _
Also das mit dem True schein jetzt zu funktionieren. Er änder auch die Daten aber das Ja/nein Feld ändert er nciht alles andere ja.
ich poste mal die Sub.Nicht erschrecken ist massig viel veilleicht kann man es Verkleinern aber dazu sind meine Kenntnisse zu gering.
Private Sub button_behandlung_bearbeiten_save_Click()
If Var_modus = "neu" Then 'Wenn neu Modus
If IsNull(Me.tf_patient) = True Then
MsgBox ("Patient auswählen.")
Else
If IsNull(Me.tf_behandlungsart) = True Then
MsgBox ("Behandlung auswählen.")
Else
If IsNull(Me.tf_RZ_ID) = True Then
MsgBox ("Rezept auswählen.")
Else
strSQL = "SELECT KL_Leistungs_ID " _
& "FROM (tbl_kassendaten INNER JOIN tbl_kassenleistungen " _
& "ON tbl_kassendaten.KK_Kassentyp = tbl_kassenleistungen.KL_Kassentyp) " _
& "INNER JOIN tbl_patientendaten ON tbl_kassendaten.KK_Kassennummer = tbl_patientendaten.PD_Kassennummer " _
& "WHERE (((tbl_kassenleistungen.KL_Leistungsname) Like " & "'*hausbesuch*'" & ") AND " _
& "((tbl_patientendaten.PD_ID)= " & [Forms]![FM_behandlung_eingabeform]![tf_patient] & "));"
Set rst = CurrentDb.OpenRecordset(strSQL)
Var_hausbesuchsnummer = rst.Fields(0).Value
Var_hausbesuch = Nz(DLookup("[RZ_HB]", "[tbl_rezepte]", "[RZ_ID] = " & Me.tf_RZ_ID), False)
If Var_hausbesuch = True Then
strSQL = "INSERT INTO tbl_behandlungen (BH_Patienten_ID,BH_Leistungs_ID,BH_Datum,BH_RZ_ID,BH_HB,BH_HB_Leistungs_ID) VALUES ('" & Me.tf_patient & "','" & Me.tf_behandlungsart & "','" & Me.tf_behandlungsdatum & "','" & Me.tf_RZ_ID & "', -1,'" & Var_hausbesuchsnummer & "')"
Debug.Print strSQL
CurrentDb.Execute strSQL
Else
strSQL = "INSERT INTO tbl_behandlungen (BH_Patienten_ID,BH_Leistungs_ID,BH_Datum,BH_RZ_ID) VALUES ('" & Me.tf_patient & "','" & Me.tf_behandlungsart & "','" & Me.tf_behandlungsdatum & "','" & Me.tf_RZ_ID & "')"
Debug.Print strSQL
CurrentDb.Execute strSQL
End If
Me.Undo
DoCmd.Close acDefault
DoCmd.Requery
MsgBox ("Gespeichert.")
End If
End If
End If
Else 'Wenn bearbeiten modus
If IsNull(Me.tf_patient) = True Then
MsgBox ("Patient auswählen.")
Else
If IsNull(Me.tf_behandlungsart) = True Then
MsgBox ("Behandlung auswählen.")
Else
If IsNull(Me.tf_RZ_ID) = True Then
MsgBox ("Rezept auswählen.")
Else
strSQL = "SELECT KL_Leistungs_ID " _
& "FROM (tbl_kassendaten INNER JOIN tbl_kassenleistungen " _
& "ON tbl_kassendaten.KK_Kassentyp = tbl_kassenleistungen.KL_Kassentyp) " _
& "INNER JOIN tbl_patientendaten ON tbl_kassendaten.KK_Kassennummer = tbl_patientendaten.PD_Kassennummer " _
& "WHERE (((tbl_kassenleistungen.KL_Leistungsname) Like " & "'*hausbesuch*'" & ") AND " _
& "((tbl_patientendaten.PD_ID)= " & [Forms]![FM_behandlung_eingabeform]![tf_patient] & "));"
Set rst = CurrentDb.OpenRecordset(strSQL)
Var_hausbesuchsnummer = rst.Fields(0).Value
Var_hausbesuch = Nz(DLookup("[RZ_HB]", "[tbl_rezepte]", "[RZ_ID] = " & Me.tf_RZ_ID), False)
If Var_hausbesuch = True Then
MsgBox "HB"
strSQL = "UPDATE tbl_behandlungen SET " _
& "tbl_behandlungen.BH_Patienten_ID = '" & [Forms]![FM_behandlung_eingabeform]![tf_patient] & "', " _
& "tbl_behandlungen.BH_Leistungs_ID = '" & [Forms]![FM_behandlung_eingabeform]![tf_behandlungsart] & "', " _
& "tbl_behandlungen.BH_Datum = '" & [Forms]![FM_behandlung_eingabeform]![tf_behandlungsdatum] & "', " _
& "tbl_behandlungen.BH_RZ_ID = '" & [Forms]![FM_behandlung_eingabeform]![tf_RZ_ID] & "', " _
& "tbl_behandlungen.BH_HB = True, " _
& "tbl_behandlungen.BH_HB_Leistungs_ID = '" & Var_hausbesuchsnummer & "' WHERE " _
& "tbl_behandlungen.BH_ID = " & [Forms]![FM_behandlung_eingabeform]![TF_BH_ID] & ""
Debug.Print strSQL
CurrentDb.Execute strSQL
Else
MsgBox "kein HB"
strSQL = "UPDATE tbl_behandlungen SET " _
& "tbl_behandlungen.BH_Patienten_ID = '" & [Forms]![FM_behandlung_eingabeform]![tf_patient] & "', " _
& "tbl_behandlungen.BH_Leistungs_ID = '" & [Forms]![FM_behandlung_eingabeform]![tf_behandlungsart] & "', " _
& "tbl_behandlungen.BH_Datum = '" & [Forms]![FM_behandlung_eingabeform]![tf_behandlungsdatum] & "', " _
& "tbl_behandlungen.BH_RZ_ID = '" & [Forms]![FM_behandlung_eingabeform]![tf_RZ_ID] & "', " _
& "tbl_behandlungen.BH_HB = False, " _
& "tbl_behandlungen.BH_HB_Leistungs_ID = 0 WHERE " _
& "tbl_behandlungen.BH_ID = " & [Forms]![FM_behandlung_eingabeform]![TF_BH_ID] & ""
Debug.Print strSQL
CurrentDb.Execute strSQL
End If
DoCmd.Close acDefault
DoCmd.Requery
MsgBox ("Gespeichert.")
End If
End If
End If
End If
End Sub
Hallo,
du verwendest doch immer keine Variablendeklaration!
Versuch mal:
Dim Var_hausbesuch as boolean
Var_hausbesuch = Nz(DLookup("[RZ_HB]", "[tbl_rezepte]", "[RZ_ID] = " & Me.tf_RZ_ID), False)
Die Hochkommata bei Zahlenwerten solltest du ebenfalls weglassen und das Datum VBA-konform formatieren
siehe:
http://www.donkarl.com?FAQ6.8
(http://www.donkarl.com?FAQ6.8)
HTH
Zitatdu verwendest doch immer keine Variablendeklaration!
Doch aber die sind in Kopf die habe ich nur net gepostet.
UPDATE tbl_behandlungen SET tbl_behandlungen.BH_Patienten_ID = 13, tbl_behandlungen.BH_Leistungs_ID = 28, tbl_behandlungen.BH_Datum = #2011-12-29#, tbl_behandlungen.BH_RZ_ID = 6, tbl_behandlungen.BH_HB = True, tbl_behandlungen.BH_HB_Leistungs_ID = 37 WHERE tbl_behandlungen.BH_ID = 337
UPDATE tbl_behandlungen SET tbl_behandlungen.BH_Patienten_ID = 13, tbl_behandlungen.BH_Leistungs_ID = 21, tbl_behandlungen.BH_Datum = #2011-12-29#, tbl_behandlungen.BH_RZ_ID = 1, tbl_behandlungen.BH_HB = False, tbl_behandlungen.BH_HB_Leistungs_ID = 0 WHERE tbl_behandlungen.BH_ID = 337Das sieht für meine Verhältnisse nach einem Sauberen SQL aus jedoch ändert er das Ja nein Feld einfach nicht obwohl der Update Befehl kommt.
Hallo,
schreib mal (nur für Testzweck)
Docmd.RunSQL strSQL
anstatt
CurrentDb.Execute strSQL, dbFailOnError ' füg dbFailOnError bei Execute noch hinzu.
Hast Du "Option Explicit" im Kopf dieses Formular-Modules?
ZitatHast Du "Option Explicit" im Kopf dieses Formular-Modules?
Steht in jedem Kopf.
Habe gerade heraus gefunden das doch alles so funktioniert. Manchmal gewinnt man eben nur durch rumspielen.
Ich habe noch ein me.undo vor DoCmd.Close acDefault eingebaut. Er brachte nämlich immer das Fenster was im Anhang ist.
Ich möchte hier "tbl_behandlungen.BH_HB_Leistungs_ID = 0" nicht 0 sonder nix also das feld soll leer sein reinschreiben. habe es mit
tbl_behandlungen.BH_HB_Leistungs_ID = '""' versucht dann bringt er anhang bild 2
[Anhang gelöscht durch Administrator]
Hi,
was ist denn das Feld BH_HB IN DER TABELLE für ein Datentyp? Wenn das ein Ja/Nein Feld ist (was ich schwerstens hoffe) dann kannst du auch -1 für JA und 0 für NEIN übergeben.
tbl_behandlungen.BH_HB_Leistungs_ID = '""' wird bei einem Felddatentyp Zahl wohl kaum funktionieren, du kannst so einem Feld nicht mitteilen, dass es keinen Text enthält!
tbl_behandlungen.BH_HB_Leistungs_ID = NULL .... sollte da schon eher gehen
BH_HB ist ein Ja/nein feld. Das mit -1 und 0 weis ich jedoch True und False geht ja jetzt.
Das mit der NULL hab wunderbar funktioniert. Danke sehr.
Der fehler lag einfach darin das ich den Datensatz per SQL update und dann ein DoCmd.Close ausführe um das Form zu schließen und wieder in der Übersicht lande. Dabei will er natürlich die änderung nochmals speichern und meckert rum weil die daten schun ein Update erhalten haben. ich habe dann im Form einfach vorm Close ein Me.undo eingebaut und somit werden die Daten nur vom SQL geändert. Werde dies aber ncoh umbauen habe gestern überlegt wie ich das Übers Form machen könnte und werde dies mal ausprobieren. Dazu werde ich versuchen 2 Textfelder einzubauen muss mich nur mal mit visible auseinander setzen weil ich die felder nur sehen will wenn das Rezept ein HB rezept ist.
Aus dem Ewig langen SQL Strings die ich oben gepostet habe wurde mal eben das:
Private Sub button_behandlung_bearbeiten_save_Click()
If IsNull(Me.tf_patient) = True Then
MsgBox ("Patient auswählen.")
Else
If IsNull(Me.tf_behandlungsart) = True Then
MsgBox ("Behandlung auswählen.")
Else
If IsNull(Me.tf_RZ_ID) = True Then
MsgBox ("Rezept auswählen.")
Else
DoCmd.RunCommand acCmdSaveRecord
DoCmd.Close acDefault
DoCmd.Requery
End If
End If
End If
End Sub
Ich habe einfach das Eingabeform um 2 Felder erweitert. Nun habe ich auch nciht mehr das problen das ich herrausfinden muss ob ich neu oder bearbeiten mache. Ja Lerning by doing ist doch immer noch das beste.
Mal wieder ein 3061 Ich finde den Fehler einfach nicht wird mal wieder nur was kleines sein.
strSQL = "UPDATE tbl_behandlungen SET tbl_behandlungen.BH_HB = False, tbl_behandlungen.BH_HB_Leistungs_ID = NULL " _
& "WHERE (tbl_behandlungen.BH_RZ_ID) = " & Me.tf_RZ_ID
Debug.Print strSQL
CurrentDb.Execute strSQL
UPDATE tbl_behandlungen SET tbl_behandlungen.BH_HB = False, tbl_behandlungen.BH_HB_Leistungs_ID = NULL WHERE (tbl_behandlungen.BH_RZ_ID) = 57
strSQL = "UPDATE tbl_behandlungen SET tbl_behandlungen.BH_HB = False, tbl_behandlungen.BH_HB_Leistungs_ID = NULL " _
& "WHERE (tbl_behandlungen.BH_RZ_ID) = '" & Me.tf_RZ_ID &"'"
Debug.Print strSQL
CurrentDb.Execute strSQL
UPDATE tbl_behandlungen SET tbl_behandlungen.BH_HB = False, tbl_behandlungen.BH_HB_Leistungs_ID = NULL WHERE (tbl_behandlungen.BH_RZ_ID) = '57'
Er bekommt wieder 1 Parameter zu wenig.
Hallo,
wenn du eine neue Frage an einen gelösten Thread hängst wirst du nur ganz selten eine Antwort bekommen!
Also künftig bitte unbedingt für neue Fragen auch einen Neuen Beitrag erstellen.
strSQL = "UPDATE tbl_behandlungen SET tbl_behandlungen.BH_HB = False, tbl_behandlungen.BH_HB_Leistungs_ID = NULL " _
& "WHERE (tbl_behandlungen.BH_RZ_ID) = " & Me.tf_RZ_ID
Debug.Print strSQL
CurrentDb.Execute strSQL
Was passiert denn in dem Fall ?
strSQL = "UPDATE tbl_behandlungen SET tbl_behandlungen.BH_HB = False, tbl_behandlungen.BH_HB_Leistungs_ID = NULL " & _
"WHERE (tbl_behandlungen.BH_RZ_ID) = " & Me.tf_RZ_ID
Debug.Print strSQL
CurrentDb.Execute strSQL
HTH
Hallo,
ZitatEr bekommt wieder 1 Parameter zu wenig.
anhand der Fehlermeldung kann es ja eigentlich nur sein, dass eines der angegebenen Tabellenfelder nicht existiert...
Jap genau so wars. Allerdings habe ich gebraucht bis ich es bereits gestern abend gefunden habe. Ich hätte allerdings von Access erwartet das er mir das sagt wenn das Feld in der tabelle nciht existiert.
Eigentlich tut es das ja, halt auf seine Ausdrucksweise...