PDA

Vollständige Version anzeigen : RecordSource im Formular


Sandrine
25.06.2001, 10:06
Hallo zusammen,

ich hatte nun endlich meinen VBA-Kurs und bin um etliche Lösungsansätze schlauer, auch die "Produktion" eigener Subs und Functions werde ich demnächst in Angriff nehmen.

Zunächst habe ich aber in einem nicht zu druckenden Formularkopf ein Eingabefeld, in das das Aktenzeichen eingegeben wird und nach einem Click auf eine Schaltfläche wird dem geöffneten Formular als RecordSource eine Abfrage mit eben dem DS zugewiesen, der dieses Aktenzeichen enthält.

Private Sub Befehl110_Click()
Me.RecordSource = "SELECT [Daten ASt +Bearbeiter].*, [Daten ASt +Bearbeiter].Geschäftszeichen FROM [Daten ASt +Bearbeiter]WHERE ((([Daten ASt +Bearbeiter].Geschäftszeichen)= " & Chr(34) & Me.Text108 & Chr(34) & "));"
End Sub

Klappt auch sehr gut, bis auf eins...

Im Textfeld, in dem bisher wunderbar das Aktenzeichen des DS eingesetzt wurde, steht jetzt nur noch #Name?

Was mach ich denn da schon wieder falsch???

Birgit Dannenberg
25.06.2001, 10:30
Hallo Sandrine,

an was hast Du denn Text108 gebunden??
(Ist Aktenzeichen = Geschäftszeichen?)


Im übrigen ein Tipp am Rande:
gib Deinen Feldern und Schaltflächen etc. von Anfang an sprechende Namen, das erleichtert den Überblick bei komplexeren Anwendungen enorm! ;)

Gruss Birgit

Sandrine
25.06.2001, 10:46
Hallo Birgit,

Text108 ist ungebunden, das ist das Eingabefeld im Formularkopf, in dem das Aktenzeichen eingegeben wird.

(Ist Aktenzeichen = Geschäftszeichen?)- Zunächst ja, später wird aus dem (Grund)Aktenzeichen durch einen Zusatz von Bearbeiter und Datum das Geschäftszeichen. Zu Testzwecken ist es aber erstmal das Gleiche.

Mit den Feldnamen hast Du Recht, mache ich sonst nach leidvoller Erahrung auch, wollte jetzt in einer DB-Kopie das ganze "nur mal schnell" testen... Sollte ich mir aber auch da besser angewöhnen.

Helfen Dir die Infos, um mir weiterzuhelfen?

Birgit Dannenberg
25.06.2001, 10:57
Das Textfeld, das den Fehler bringt ist offensichtlich nicht text108?!

Der Fehler bedeutet ziemlich eindeutig, dass der Steuerelementinhalt falsch ist. Deshalb auch meine Frage nach AZ=GZ. Deine Abfrage beinhaltet ja nur zwei Felder, hast Du das bedacht?

hth, Birgit

Sandrine
25.06.2001, 11:48
Hallo Birgit,

ich dachte, daß meine Select-Klausel bedeutet, daß aus der Abfrage "Daten AST und Bearbeiter" - blöder Name, ich weiß... - alle DS (d.h. der eine mögliche) ausgesucht werden, in denen das Feld Geschäftszeichen gleich der aktuellen Eingabe im Feld text108 ist. Und dass mir dann aus diesem DS auch alle Felder zur Verfügung stehen.

Die anderen Felder wie Name, Anschrift, Bearbeiter etc. werden auch alle korrekt eingelesen, das Problem besteht nur im Feld, in dem das Geschäftszeichen stehen soll.

Dieses Feld heißt (ich weiß...) text0 und der Steuerelementinhalt wurde über die Eigenschaften als Steuerelementinhalt festgelegt. Dort wird dieses Feld neben allen anderen der Abfrage "Daten AST und Bearbeiter" angeboten.

In anderen Feldern habe ich den Inhalt genauso festgelegt, dort erhalte ich problemlos das richtige Ergebnis.

Ist etwas länger geworden, aber vielleicht erblickst Du oder irgendjemand anders dadurch Licht im Dunkel meiner Ratlosigkeit?!

Gruß und Danke bisher, Sandrine

Birgit Dannenberg
25.06.2001, 11:56
Sorry, habe den 'Stern' übersehen! Aber dann bekommst Geschäftszeichen wohl zweimal geliefert, das könnte evtl. mit Deinem Problem zutun haben. Nimm es doch einfach raus!

Gruss Birgit

Sandrine
25.06.2001, 12:05
Hi,
kannst Du mir erklären, warum ich geschäftszeichen zweimal geliefert bekomme und wie ich es herausnehme?
Danke, Sandrine

Morli
25.06.2001, 12:23
Hallo Sandrine,

Birgit hat hier vollkommen recht, Du bekommst zwei mal den Wert für Geschäftszeichen geliefert!
Einmal, weil Du mit [Daten ASt +Bearbeiter].* alle Felder aus der Tabelle abfragst und zum zweiten Mal, weil Du nachmals mit [Daten ASt +Bearbeiter].Geschäftszeichen das einzelne Feld abfragst.
Du brauchst eigentlich nur in der Abfrage in der Zeile Anzeigen bei Feld [Daten ASt +Bearbeiter].Geschäftszeichen den Haken wegklicken, dann wird zwar dein Kriterium abgefragt, aber die Spalte nicht nochmal angezeigt.

Probier's doch einfach mal bei deiner Abfrage (ohne Formular) aus, damit Du den Unterschied siehst.

Gruß

Rainer :)

Birgit Dannenberg
25.06.2001, 12:23
Lies doch mal Deine Abfrage genau:
"SELECT [Daten ASt +Bearbeiter].*, [Daten ASt +Bearbeiter].Geschäftszeichen FROM [Daten ASt
+Bearbeiter]WHERE ((([Daten ASt +Bearbeiter].Geschäftszeichen)= " & Chr(34) & Me.Text108 & Chr(34) & "));"

Wahrscheinlich hast Du Dir den SQL-Code vom Abfragen-Assistenten generieren lassen (clever!), dann hättest Du das "Anzeigen"-Häkchen entfernen sollen, um das Datenfeld nicht dopp. zu bekommen. Es wird zwar ein eind. Name generiert, aber ich weiß nicht woran es sonst liegen soll, ohne Dein Formular zu sehen...

Wenn gar nichts hilft, schick mir Dein Beispiel mal zu!

Gruss Birgit

Sandrine
25.06.2001, 12:40
Jaaa, es klappt!

Oh, Ihr habt ja sooooo recht, da übersieht man ein einziges kleines Häkchen und ist dann nur noch am Grübeln (und beschäftigt andere ebenfalls damit...).

Ja, der SQL-Code stammt aus dem Abfrage-Generator, Tipp unseres Dozenten.
Ich hatte mir auch im Seminar notiert, das Anzeigehäkchen zu deaktivieren, aber der Dozent hatte nicht erklärt, wozu das nötig ist, jetzt weiß ich es und verspreche, es nie wieder zu vergessen!

Vielen lieben Dank, Birgit, Rainer und an die "stillen Denker"!