PDA

Vollständige Version anzeigen : Bei Eingabe prüfen


DFault
28.03.2006, 10:05
Hallo Forum,

ich bin's mal wieder. Ich experimentiere jetzt schon wieder stundenlang mit der Gültigkeitsprüfung herum. Komme aber einfach nicht zum gewünschten Ergebnis.

In meiner Artikeltabelle habe ich die Artikelnummer als Primärschlüssel festgelegt. Diese wird jedoch nicht durch einen Autowert sondern durch mich vergeben. D.h. sie ist nicht unbedingt fortlaufend. Soweit noch kein Problem!

Nun erfasse ich in einem Formular neue Aufträge und gebe in einem Textfeld die Artikelnummer ein. Doch zu meinem Erschrecken musste ich feststellen, dass ich dort auch Artikelnummern eintragen kann, die in meiner Tabelle gar nicht existieren.

Wie kann ich an dieser Stelle sicherstellen, dass nur die Artikelnummern eingegeben werden können, die auch in der Artikeltabelle stehen? Vielen Dank.

Lufri
28.03.2006, 10:12
Mit einem Kombifeld zum auswählen, wo er nur Listeneinträge auswählen kann.

DFault
28.03.2006, 10:13
Hab ich auch schon vorgeschlagen, ist aber nicht gewollt. Kann ich irgenwie anders abfangen?

Smaug
28.03.2006, 10:30
Du könntest im Formular mit der Seek- oder FindFirst-Methode in der Artikeltabelle prüfen ob die Artikelnummer bereits vorhanden ist (evtl. Feldereignis BeforeUpdate oder Exit-Ereignis ?!)- aber ein Kombifeld in dem Artikelnummer und Artikelname angezeigt werden wäre schon praktischer !!

DFault
28.03.2006, 11:02
Könntest Du diese Methoden näher beschreiben? Danke

Smaug
28.03.2006, 11:09
hast Du schon die Online-Hilfe konsultiert (bzw. via Objektkatalog ?). zusätzlich findest Du im Code-Archiv noch ein Word-Doku zum Herunterladen:
http://www.ms-office-forum.net/forum/showthread.php?t=125417
Edit: Link korrigiert !!

DFault
28.03.2006, 11:33
ja klar! Die Online-Hilfe bringt mich in meinem Verständnis aber nicht viel weiter. Ich bin quasi blutiger Anfänger und probiere mich da irgendwie durchzufummeln. Was meinst Du mit Objektkatalog?

Welche Word-Doku meinst Du? Über den Link kriege ich nur Sachen zu Uhrzeiten usw.


Vielleicht noch mal zur näheren Beschreibung:

Über ein Formular erfasse ich Aufträge. In diesem Formular gebe ich neben Datum und den ganzen Standardkram auch die Artikelnummern auf. Diese ganzen Informationen landen in der Tabelle "tbl_Ausleihen".
Zwar besteht eine Beziehung zwischen meinen Artikeltabellen und der Tabelle "tbl_Ausleihen" aber das nutzt mir bei der Eingabe nichts. Ich muss also bei der Eingabe sicherstellen, dass nur Werte eingegeben werden können, die auch in der ARTIKELtabelle stehen.

Bei meinen Versuchen (z.B. mit FindRecord) wurden bislang nur die Daten der "tbl_Ausleihen" herangezogen.

Mein Problem ist also der Vergleich zwischen dem Eintrag in der "tbl_Ausleihe" und den in der "tbl_Artikel" vorhandenen Artikelnummern.

Ich muss also irgendwie Tabellenübergreifend vergleichen. Nur wie ist mein Problem? Vielen Dank

Smaug
28.03.2006, 11:49
Dim rst As DAO.Recordset
Sorry das war der falsche Link - ich habe Beitrag #6 korrigiert.
Zum Suchen gibt es mehrere Möglichkeiten:
1.) Recordset mit Kriterium:
Set rst = CurrentDb.OpenRecordset ("SELECT ArtikelNr FROM tblArtikel WHERE ArtikelNr ='" & Me!FormularfeldMitArtikelNr & "'")
If Not rst.BOF and not rst.EOF Then
MsgBox "Artikel bereits vorhanden"
Else
MsgBox "Artikel-Nr noch nicht vorhanden"
End If
....bzw. mit FindFirst:
Set rst = CurrentDb.OpenRecordset ("SELECT ArtikelNr FROM tblArtikel")
rst.FindFirst "ArtikelNr ='" & Me!FormularfeldMitArtikelNr & "'"
If Not rs.NoMatch Then
MsgBox "ArtikelNr bereits vorhanden"
Else
MsgBox "Artikel-Nr noch nicht vorhanden"
End If...
Sehr gut eignen sich auch Domänenfunktionen - besonders die am Schluss erwähnten Ersatzfunktionen (stammen aus dem Forum) sowie besagte Seek-Methode

DFault
28.03.2006, 12:30
Vielen Dank erst mal bis hier hin, das macht das ganze schon klarer. Nur behauptet er bei mir steif "Fehler beim Kompilieren: Benutzerdefinierter Typ nicht definiert" und markiert "DAO.Recordset"!

Muss ich da vorher noch irgendwas beachten?

DFault
28.03.2006, 12:50
Irgendwie scheint er überhaupt nicht mit dem Code klar zu kommen. Hat das was mit meiner Access-Version zu tun? Ich setze Acc2000 ein.

Smaug
28.03.2006, 13:10
unter Extras-Verweise ist ein Verweis auf die DAO 3.6-Objektbibliothek erforderlich. Bei Access 2000 ist nämlich ADO voreingestellt.

DFault
28.03.2006, 13:25
Sorry, immer noch Unklarheiten.

Sobald er die beiden "Felder" vergleichen möchte, kriege ich ne Fehlermeldung "Datentypen in Kriterienausdruck unverträglich". Die Felder in den Tabellen habe ich schon überprüft. Sowohl ArtikelID in tblArtikel als auch ArtikelID in tblAusleihe stehen auf Long Integer. Oder sind hier andere Datentypen gemeint?

Smaug
28.03.2006, 13:30
ich bin bei der Artikel-Nummer von einem Text-Feldtyp ausgegangen der Hochkommas benötigt. Bei Zahlenwerten geht es ohne:
rst.FindFirst "ArtikelNr =" & Me!FormularfeldMitArtikelNr

DFault
28.03.2006, 13:44
ACHSO! Mensch, ich danke Dir wirklich für Deine Geduld! Jetzt funktioniert's.

DFault
29.03.2006, 12:31
Mit Deiner Mithilfe sieht mein Code jetzt so aus.
Ein Recordset dient mir zur Abfrage, ob es den eingetippten Artikel überhaupt gibt.Ein anderes zur Abfrage, ob der Artikel bereits Teil eines anderen Auftrages ist.



Dim rstArtikelVorhanden As DAO.Recordset
Dim rstArtikelVerliehen As DAO.Recordset

Set rstArtikelVorhanden = CurrentDb.OpenRecordset("SELECT tbl_Artikel.Artikel_id from tbl_Artikel")
Set rstArtikelVerliehen = CurrentDb.OpenRecordset("SELECT tbl_Ausleihen.Artikel_ID, tbl_Ausleihen.Leihauftrag_ID FROM tbl_Ausleihen WHERE tbl_Ausleihen!Zurück = false")
rstArtikelVorhanden.FindFirst "Artikel_ID =" & Me!Artikel_ID
rstArtikelVerliehen.FindFirst "Leihauftrag_ID =" & Me!Leihauftrag_ID

If rstArtikelVorhanden.NoMatch Then
MsgBox "Artikel nicht vorhanden."
ElseIf rstArtikelVerliehen.NoMatch Then
MsgBox "Dieser Artikel ist bereits Teil eines anderen Auftrags."
End If


Für meinen Elseif-Zweig würde ich jetzt gerne in der msgbox noch die entsprechende Auftragsnummer ausgeben lassen.
Doch mit:

&" " &[tbl_Ausleihen]![Leihauftrag_ID] &" ."

oder

&" " &Leihauftrag_ID &"."

bin ich jeweils nicht weit gekommen bzw. wurde mir dann immer die ID des aktuellen Auftrags zurückgegeben.
Irgendwie muss ich doch den gefundenen DS im Recordset ausgeben können, oder?
So in der Art: "Dieser Artikel ist bereits Teil des Auftrags 25."

Anne Berg
29.03.2006, 12:42
Ich würde sagen, da ist eh noch etwas falsch ;):
rstArtikelVerliehen.FindFirst "Artikel_ID =" & Me!Artikel_ID

If rstArtikelVorhanden.NoMatch Then
MsgBox "Artikel nicht vorhanden."
ElseIf Not rstArtikelVerliehen.NoMatch Then
MsgBox "Dieser Artikel ist bereits Teil des Auftrags " & _
rstArtikelVerliehen!Leihauftrag_ID & "."
End If

DFault
29.03.2006, 13:03
Achso, damit:

rstArtikelVerliehen.FindFirst "Leihauftrag_ID =" & Me!Leihauftrag_ID


verhindere ich, dass er mir den Auftrag anmeckert, den ich gerade anlege. Er soll nur die bereits vorhanden überprüfen! Habe ich da irgendwo einen denkfehler? (Wahrscheinlich ;)) Aber irgendwie scheint es auch zu funktionieren.

Anne Berg
29.03.2006, 13:26
Nun, ich weiß ja nicht was noch dahinter steckt (weil ich zugegebenermaßen nicht den ganzen Thread gelesen habe ;)) und in welchem Sinnzusammenhang die Formularfelder zu sehen sind, aber die Befüllung deines Recordsets passt definitiv nicht zur Art der Auswertung.

Wenn du alle ausgeliehenen Artikel nach einem bestimmten Ausleihauftrag durchsuchst und bei Nicht-Finden den Schluss ziehst, dass der (welcher?) Artikel verliehen ist, so könnte man das durchaus einen Denkfehler nennen. :p


PS: Ich bin jetzt mal davon ausgegangen, dass Auftrag und Leihauftrag dasselbe ist.

Smaug
29.03.2006, 13:26
über die Fields-Auflistung des Recordsets kann auf die einzelnen Felder im Recordset zugegriffen werden-sofern das gewünschte Feld Bestandteil des Recordsets ist.
In Deinem Fall hast Du ausser der ArtikelID und der LeihauftragID kein anderes Feld im Recordset. Wenn Du noch ein anderes (Auftragsfeld) ausgeben möchtest, dann muss dieses in den Select-String aufgenommen werden:
Set rstArtikelVerliehen = CurrentDb.OpenRecordset("SELECT Artikel_ID, Leihauftrag_ID, ANDERESFELD FROM tbl_Ausleihen WHERE Zurück = false")
Mit rstArtikelVerliehen!ANDERESFELD kann dann auf den aktuellen Inhalt zugegriffen werden

Anne Berg
29.03.2006, 13:36
Habe mir deinen letzten Kommentar noch einmal durch die Hirnwindungen gejagt: ;)

Kann es sein, dass du schon einen neuen Auftrag gespeichert hast bzw. gerade dabei bist und dann erst die Artikel prüfen willst?
(Geht das nicht früher? Kannst du es nicht anders verhindern, dass verliehene Artikel nochmals ausgeliehen werden können?)

Dann müsste der Filter wohl eher so lauten:
rstArtikelVerliehen.FindFirst "Leihauftrag_ID <>" & Me!Leihauftrag_ID & " AND Auftrag_ID=" & Me!Auftrag_ID

Anne Berg
29.03.2006, 13:45
Sorry, das habe ich jetzt erst gesehen: :(... zu meinem Erschrecken musste ich feststellen, dass ich dort auch Artikelnummern eintragen kann, die in meiner Tabelle gar nicht existieren.Dies lässt sich durch Erstellen von Beziehungen mit Referentieller Integrität zwischen den Tabellen zuverlässig unterbinden!


PS:
Na ja, war doch nicht ganz umsonst der Thread, hast doch einiges Neues gelernt, gell? :D

DFault
29.03.2006, 14:22
Also im Moment überholt Ihr mich gerade ein bisschen! :)

Neben meiner Kundentabelle, habe ich eine Artikeltabelle. In dieser Artikeltabelle speichere ich die Artikel, deren ID eine frei wählbare Zahlenkombination ist. Diese ergibt sich aus einem Aufkleber auf den Artikeln z.B. 15.

Jetzt wird dieser Artikel mit der ID 15 von einem Kunden ausgeliehen. Dazu öffne ich meine Auftragserfassung (oder auch Leihauftragerfassung) und gebe u.a. die Zahl 15 in das dafür vorgesehene Textfeld ein. Der Vorschlag hier ein Kombifeld einzusetzen wurde vom Auftraggeber abgelehnt.
Jetzt muss ich natürlich irgendwie anders sicherstellen, dass hier falscheingegebene Zahlen reklamiert werden.
Genauso muss ich natürlich sicherstellen, dass der Artikel 15 zur gleichen Zeit nur einmal verliehen werden kann.

Deshalb mein Konstrukt mit den Recordsets.

von Anne Berg:

Wenn du alle ausgeliehenen Artikel nach einem bestimmten Ausleihauftrag durchsuchst und bei Nicht-Finden den Schluss ziehst, dass der (welcher?) Artikel verliehen ist, so könnte man das durchaus einen Denkfehler nennen.


Eigentlich dachte ich, ich mache es damit genau umgekehrt. Und dann macht es meiner Meinung nach auch Sinn:

Wenn ich ALLE NOCH AKTIVEN (zurück = false) Leihaufträge in meiner Leihauftragstabelle nach einer bestimmten (nämlich der im Formular eingegebenen) Artikelnummer durchsuche und sie NICHT finde. Kann ich doch davon ausgehen, dass der Artikel NICHT verliehen ist und somit verliehen werden kann.


von Smaug:
über die Fields-Auflistung des Recordsets kann auf die einzelnen Felder im Recordset zugegriffen werden-sofern das gewünschte Feld Bestandteil des Recordsets ist.
In Deinem Fall hast Du ausser der ArtikelID und der LeihauftragID kein anderes Feld im Recordset. Wenn Du noch ein anderes (Auftragsfeld) ausgeben möchtest, dann muss dieses in den Select-String aufgenommen werden:
Set rstArtikelVerliehen = CurrentDb.OpenRecordset("SELECT Artikel_ID, Leihauftrag_ID, ANDERESFELD FROM tbl_Ausleihen WHERE Zurück = false")
Mit rstArtikelVerliehen!ANDERESFELD kann dann auf den aktuellen Inhalt zugegriffen werden


Brauche ich denn andere/zusätzliche Felder? Ich hole mir doch lediglich die noch aktiven Aufträge rein und überprüfe sie auf eine bestimmte Artikel_ID. Findet er die Artikel_ID, ist der Artikel verliehen und kann somit nicht ein weiteres mal verliehen werden. Oder stehe ich jetzt total auf dem Schlauch? :confused:

von Anne Berg:
Kann es sein, dass du schon einen neuen Auftrag gespeichert hast bzw. gerade dabei bist und dann erst die Artikel prüfen willst?
(Geht das nicht früher? Kannst du es nicht anders verhindern, dass verliehene Artikel nochmals ausgeliehen werden können?)


Ich habe ein Formular mit einer Kundenübersicht (Listenfeld). Per Doppelklick öffnet sich das Formular zur Leihauftragerfassung, an das ich die Kundennummer (des doppelgeklickten Kunden) übergebe. Die Auftrags_ID wird hochgezählt(Autowert). Nun werden nur noch die Artikelnummern eingetippt und fertig (so zumindest die Theorie).

DFault
29.03.2006, 14:28
Dies lässt sich durch Erstellen von Beziehungen mit Referentieller Integrität zwischen den Tabellen zuverlässig unterbinden!


Also trotz Beziehungen mit referntielle Integrität zwischen den Tabellen für Artikel und Leihaufträge, kann ich eintippen was ich will. Die DB schluckt alles.

Anne Berg
29.03.2006, 14:37
Wenn ich ALLE NOCH AKTIVEN (zurück = false) Leihaufträge in meiner Leihauftragstabelle nach einer bestimmten (nämlich der im Formular eingegebenen) Artikelnummer durchsuche und sie NICHT finde. Kann ich doch davon ausgehen, dass der Artikel NICHT verliehen ist und somit verliehen werden kann.Genau das machst du aber nicht, alldieweil du nach LEIHAUFTRAG suchst. Darüberhinaus wertest du das Ergebnis aus, um zu melden, dass der Artikel in Auftrag xy bereits/noch verliehen ist.

Und andere Felder brauchst du nicht, da war Smaug wohl auf der falschen Fährte. ;)

Ich habe hier mal ein Beispiel für dich:Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim vA as variant
On Error Resume Next
If Me.NewRecord Then
DoCmd.Hourglass True
Call SysCmd(acSysCmdSetStatus, "Artikel-Nr. prüfen...")
vA = DLookup("Leihauftrag_ID", "tbl_Ausleihe", _
"Artikel_ID=" & Me!Artikel_ID)
If Not IsNull(vA) Then
MsgBox "Ausleihe:@" & _
"Der Artikel " & Me!Artikel_ID & " ist im Auftrag " & vA & _
"bereits verliehen.@" & _
"Die Eingabe wird zurückgesetzt!", vbExclamation
Me.Undo
DoCmd.RunCommand acCmdRecordsGoToLast
End If
DoCmd.Hourglass False
Call SysCmd(acSysCmdClearStatus)
End If
End Sub

DFault
29.03.2006, 14:37
Kommando zurück! Geht doch! Ist ja eigentlich auch klar, dass er erst Schwierigkeiten kriegt, wenn er es in die Tabellen schreiben will (also z.B. beim Schließen).

Damit wäre die handgemachte Lösung ja hinfällig! ;)

Kann ich denn die Fehlermeldung, die er bei solch einem Fehler ausspuckt, verändern? Im Moment gibt er einfach nur aus, dass der Datensatz nicht gespeichert werden kann, da er in Beziehung stehen muss.

Aber ob ein Artikel bereits ausgeliehen ist, kann ich damit nicht abfangen, oder?

Anne Berg
29.03.2006, 14:41
Das sollte über das Error-Ereignis des Forms zu lösen sein.

Du kannst aber auch meinen Code anpassen/erweitern oder deinen eigenen auf die rechte Bahn bringen. ;)

Anne Berg
29.03.2006, 14:49
Mit folgendem Code sollte es sich lösen lassen:Public Sub Artikel_ID_After_Update()
Dim rstArtikelVorhanden As DAO.Recordset
Dim rstArtikelVerliehen As DAO.Recordset
Dim bOK as Boolean

Set rstArtikelVorhanden = CurrentDb.OpenRecordset("SELECT tbl_Artikel.Artikel_id from tbl_Artikel")
Set rstArtikelVerliehen = CurrentDb.OpenRecordset("SELECT tbl_Ausleihen.Artikel_ID, tbl_Ausleihen.Leihauftrag_ID FROM tbl_Ausleihen WHERE tbl_Ausleihen!Zurück = false")
rstArtikelVorhanden.FindFirst "Artikel_ID =" & Me!Artikel_ID
rstArtikelVerliehen.FindFirst "Artikel_ID =" & Me!Artikel_ID

If rstArtikelVorhanden.NoMatch Then
MsgBox "Artikel nicht vorhanden."
bOK = False
ElseIf Not rstArtikelVerliehen.NoMatch Then
MsgBox "Dieser Artikel ist bereits Teil des Auftrags " & rstArtikelVerliehen.Leihauftrag_ID & "."
bOK = False
Else
' Alles OK: Artikel vorhanden und z.Zt. nicht ausgeliehen! ;-)
bOK = True
End If
If Not bOK Then
MsgBox "Eingabe wird zurückgesetzt!"
me.Undo
End If
End Sub

Smaug
29.03.2006, 15:17
wobei ich das 2.Recordset erst öffnen würde wenn der Artikel gefunden wurde. Wenn das Recordset rstArtikelVerliehen nach Datum sortiert vorliegt käme man u.U. bei Abänderung des SQL-Konstrukts auch mit einem einzigen Recordset hin ?!
@ Anne: die Variable bOK würde ich lieber in eine Variable bNotOK mit True-Rückgabe wenn nicht o.k. umwandeln da Boolean-Variablen mit False vorinitialisiert werden und die Eingabe wahrscheinlich im Fehlerfall auch zurückgesetzt werden soll ?!

Anne Berg
29.03.2006, 15:26
@Smaug: Hast Recht, ich wollt's nur (über)deutlich machen, nicht optimal. ;)

PS: ich weiß nicht, ob es dir vielleicht nicht aufgefallen ist, aber er liest da zwei verschiedene Tabellen...

DFault
29.03.2006, 15:27
HAAACH, Entschuldigung, aber ich werd' hier echt noch kirre! Mir fehlen einfach zu viele Basics um wirklich mit Accesss bzw. VBA arbeiten zu können. Ich danke Euch auch wirklich für Eure Mühe und bitte Euch um Nachsicht mit mir!

Gerade kommt mir noch eine andere Idee! Wäre es für mich als Anfänger nicht viel einfacher in der Tabelle Artikel ein weiteres Feld einzufügen (Ja/Nein) über das ich einfach steuere, ob ein Artikel ausgeliehen ist, oder nicht?

Wenn ja, dann Artikel bereits ausgeliehen, wenn nein dann Artikel am Lager.

Anne Berg
29.03.2006, 15:29
Würde ich eher nicht machen, das muss ja nur wieder gepflegt werden und die Aufträge erfasst du doch sowieso.

DFault
29.03.2006, 15:44
Die Pflege würde ich dann einfach während der Auftragserfassung übernehmen. Aber ich sehe schon, Ihr wollt das ich mich durch den Code beiße. ;)
Aber erst wieder morgen...ich werde dann brav berichten...und die Zeit nutzen und mir bis dahin Eure Beispiele/Anmerkungen/Tipps noch mal anzuschauen.

Engeli
29.03.2006, 17:59
Hallo

Du kannst ja mit dem Datum arbeiten. Du willst doch sicher einmal wissen wie lange ein Artikel ausgeliehen wurde. Also wird das Ausleihdatum gesetzt. In einer Abfrage werden dann nur die Artikel angezeigt welche kein Ausleihdatum haben, also an Lager sind. Wird der Artikel wieder zurückgebracht, kann das datum wieder gelöscht werden. Natürlich hast Du dann keine Ausleihystorie. Das würde dann eine eigene Tabelle benötigen, wo jeder einzelne Artikel Anfang und Endedatum des Ausleihvorganges erhält, natürlich verknüpft mit der Mitarbeitertabelle, damit man weiss, wer den Artikel ausgeliehen und verloren hat.

Anne Berg
29.03.2006, 23:16
Die Pflege würde ich dann einfach während der Auftragserfassung übernehmen. Aber ich sehe schon, Ihr wollt das ich mich durch den Code beiße. Keineswegs -
mach was du willst und werde glücklich damit!
(wenn du das einfacher findest... :p)

Gubidubi
29.03.2006, 23:21
Hab Beitrag gelöscht, war Antwort auf 2 Seiten vorher, sorry! :upps:

DFault
30.03.2006, 11:43
So, dank Eure wunderbaren Mithilfe und nicht zuletzt dem rettenden Beispiel von Anne Berg:


Mit folgendem Code sollte es sich lösen lassen:

Public Sub Artikel_ID_After_Update()
Dim rstArtikelVorhanden As DAO.Recordset
Dim rstArtikelVerliehen As DAO.Recordset
Dim bOK as Boolean

Set rstArtikelVorhanden = CurrentDb.OpenRecordset("SELECT tbl_Artikel.Artikel_id from tbl_Artikel")
Set rstArtikelVerliehen = CurrentDb.OpenRecordset("SELECT tbl_Ausleihen.Artikel_ID, tbl_Ausleihen.Leihauftrag_ID FROM tbl_Ausleihen WHERE tbl_Ausleihen!Zurück = false")
...

klappt es jetzt. Wobei ich feststellen musste, dass ich ja dann gar nicht SO falsch lag. Ich hatte das RS nur nach den "falschen" Feldern durchsucht, richtig?

Noch zwei Kleinigkeiten:

a)
Wenn ich jetzt eine Fehlermeldung kriege, weil ich einen nicht vorhandenen oder einen bereits verliehenen Artikel eingetragen habe, möchte ich, dass er mir das Feld entsprechende Feld markiert. Er springt aber immer zum nächsten. Ich habe es im Anschluss an die Zeile mit der MSGBOX mit:

Me.Artikel_ID.SetFocus
und

Artikel_ID.SetFocus
versucht. Beides ohne Erfolg. Kann ich ihn dazu kriegen nach der Fehlermeldung das entsprechende Feld anzuzeigen bzw. zu markieren bzw. nicht zum nächsten Feld zu springen?

b)
Ist es eigentlich möglich mehrere Zeilen Code auf einmal auszukommentieren? Ich finde es sehr mühsam jede Zeile mit einem ' zu kennzeichnen.

Anne Berg
30.03.2006, 12:31
a) das Problem ist bekannt, du kannst es umgehen, indem du den Focus zunächst woanders hin setzt (so blöd sich das jetzt auch anhört!)
Also: Me!feldxy.SetFocus: Me!Artikel_ID.SetFocus

b) ein Hochkomma reicht, wenn du ans Ende einen Unterstrich setzt - aber das ist jetzt wohl eher nicht die gewünschte Lösung ;)

MaTock
30.03.2006, 13:21
ähm zu b wüßt ich da was :) ...

wenn du unter Ansicht die Symbolleiste "Bearbeiten" mit nem Hacken versehen hast hat du die Möglichkeit den Code den du Auskommentieren willst einfach zu makieren und dann hat da so ein (ähm wie beschreib ich das bildchen jetzt...) halt so ein Quatrat mit zeilen drinn in der Symbolleiste und wenn du das dann ankickst kannst du den ganzen markierten Block auf einmal auskommentieren...
war es das was du gesucht hast?
greez
MaTock

DFault
30.03.2006, 20:55
JAAAA, genau DAS hab ich gesucht! Kenne ich von DOT NET, herzlichen Dank. Natürlich auch noch mal an alle Anderen, die mir in diesem Thread hier so aufopferungsvoll geholfen haben!