saphirmd
Goto Top

Access- VBA Formularfelder auslesen und kopieren

Problem mit dem Auslesen von Formularfeldern und dem Schreiben dieser in ein neue Formularfelder

Hallo !!

Könnt Ihr mir vielleicht helfen?? I
ch habe ein Problem mit der VBA-Programmierung in MS Access.
Ich muss eine Prozedur erstellen,mit der ich -viielleicht mit Hilfe eines Arrays- aus Formuarfeldern die Inhalte kopieren / auslesen kann und diese dann in Formularfeldereines ANDEREN Formulars kopieren//einfügen kann.

Leider bin ich noch nicht fündig geworden und würde mich freuen, wenn Ihr mir helfen könntet.

Danke im Vorraus.

Ich wünsche allen ein friedliches und besinnliches Weihnachtsfest und ein guten Rutsch ins Neue Jahr.

Grüße -Der Saphir-

Content-Key: 178054

Url: https://administrator.de/contentid/178054

Printed on: April 24, 2024 at 13:04 o'clock

Member: thaenhusen
thaenhusen Dec 23, 2011 at 11:06:49 (UTC)
Goto Top
Moin.

Du kannst mit

Forms("Formular").Feld = Forms("Formular2").Feld  
bzw. für Unterformulare
Forms("Formular")("Unterformular").Form..Feld = Forms("Formular2")("Unterformular2").Form.Feld  

die Werte übertragen. Es müssen nur beide Formular geleichzeitig geöffenet sein.

Aber warum willst Du das überhaupt?

Ich wünsche allen ein friedliches und besinnliches Weihnachtsfest und ein guten Rutsch ins Neue Jahr.

Vielen Dank. Wünsche ich Dir auch.

HTH
MK
Member: NetWolf
NetWolf Dec 23, 2011 at 13:00:47 (UTC)
Goto Top
Moin Moin,

Ich muss eine Prozedur erstellen,mit der ich -viielleicht mit Hilfe eines Arrays- aus Formuarfeldern die Inhalte kopieren /
auslesen kann und diese dann in Formularfeldereines ANDEREN Formulars kopieren//einfügen kann.
ok, du hast ein Hauptformular, und dann sollen die Daten wohin gehen? in ein UFO oder ein anderes Hauptformular?
Welche Felder sollen übertragen werden? alle oder nur einige?
Wie sehen die Tabellen der Formulare aus?

Wie schon thaenhusen fragt: warum so umständlich?
Beschreibe doch bitte mal genau, was du machen willst. So wie es aussieht, bist du auf einem Holzweg. Da gibt es bestimmt eine andere Lösung.

Ich wünsche allen ein friedliches und besinnliches Weihnachtsfest und ein guten Rutsch ins Neue Jahr.
dito

Grüße aus Rostock
Wolfgang
(Netwolf)
Member: saphirmd
saphirmd Dec 25, 2011 at 00:47:44 (UTC)
Goto Top
Hallo,

Danke für Eure schnelle Antwort.

Mein Chef wollte, dass ich aus zwei verschiedenen Tabellen ein Formular (A) erstelle und diese Felder dann in einzelne Felder eines anderen, schon vorhandenen Formulars (B), einfüge.
Ein Teil der Felder von B werden dabei nicht berücksichtigt, bleiben also so, wie sie waren.
Wie die Tabellen aussehen weiß ich noch nicht.

Ich hoffe, es ist jetzt ein bisschen verständlicher.

Grüße aus Magdeburg
-der saphir-
Member: NetWolf
NetWolf Dec 25, 2011 at 14:59:27 (UTC)
Goto Top
Moin Moin,

nö, verständlich ist das nicht face-sad

Wenn generell die Daten aus den zwei Tabellen in die dritte Tabelle (also Formular B) übernommen werden sollen, wäre eine Aktualisierungsabfrage sinnvoller.

Grüße aus Rostock
Wolfgang
(Netwolf)
Member: saphirmd
saphirmd Dec 27, 2011 at 10:55:30 (UTC)
Goto Top
Hallo Wolfgang

wie könnte ich eine solche Aktualisierung programmieren, habe das leider noch nicht machen müssen.

Ware sehr dankbar über Deine Hilfe.

Grüße aus Magdeburg
Sascha
der Saphir
Member: NetWolf
NetWolf Dec 27, 2011 at 12:18:19 (UTC)
Goto Top
Moin Moin,

ich gehe jetzt mal davon aus, dass du die Aktualisierungsabfrage meinst!

- öffne eine leere Abfrage (leider schreibst du nicht, mit welcher Version du arbeitest, so könnten man dir genauere Hilfe geben)
- je nach Access Version achte darauf, dass du eine Aktualisierungsabfrage wählst
- füge die drei Tabellen hinzu
- erzeuge die Verknüpfung zwischen den Tabellen
- unten trage die Felder ein, die aktualisiert werden sollen [Feld]
- in der Zeile [Aktualisieren] trägst du die Felder ein, aus denen aktualisiert werden soll
- speichern
- doppelklick auf die Abfrage und diese wird ausgeführt

Es ist selbstverständlich, dass man solche Experimente nicht mit den originalen Datenbanken macht, sondern mit einer Kopie!!!

Grüße aus Rostock
Wolfgang
(Netwolf)
Member: saphirmd
saphirmd Dec 27, 2011 at 16:29:02 (UTC)
Goto Top
Hallo Wolfgang,

Ich benutze Ms Access 2003 bzw. dann in der Firma Access 2007

Danke für den Tip mit der Aktualisierungsabfrage. Aber in der Zeile aktualisieren kann ich doch nur Felder eingeben, nicht die dazugehörigen Tabellen auswählen oder muss ich das in der Form <Ttabellenname.Feldname> eingeben?

Und dann noch eins, wahrscheinlich auch ganz simpel....

Wenn ich in einer Prozedur eingebe, dass ich ein Formular (beispielsweise NurLesen öffnen will
gebe ich doch ein "doCmd.openForm "<Formularname"> und dann irgendwann mit Komma getrennt "vbFormReadOnly".....

Jetzt möchte ich, dass mir das Formular angezeigt wird, aber OHNE die Statuszeile am unteren Rand des Formulars, wo steht Datensätze und die Symbole für Vor und Zurück bzw. Neuer Datensatz angezeigt werden
Geht das überhaupt??

Danke Dir.

Sascha
Member: NetWolf
NetWolf Dec 27, 2011 at 17:01:30 (UTC)
Goto Top
Hallo Sascha,

Ich benutze Ms Access 2003 bzw. dann in der Firma Access 2007
dir ist klar, dass gerade zwischen diesen Versionen die größten Änderungen gab.

Danke für den Tip mit der Aktualisierungsabfrage. Aber in der Zeile aktualisieren kann ich doch nur Felder eingeben, nicht
die dazugehörigen Tabellen auswählen oder muss ich das in der Form <Ttabellenname.Feldname> eingeben?
es kommt drauf an. Wenn die Felder die gleiche Bezeichnung haben, dann: ja

Wenn ich in einer Prozedur eingebe, dass ich ein Formular (beispielsweise NurLesen öffnen will
gebe ich doch ein "doCmd.openForm "<Formularname"> und dann irgendwann mit Komma getrennt
"vbFormReadOnly".....
ja

Jetzt möchte ich, dass mir das Formular angezeigt wird, aber OHNE die Statuszeile am unteren Rand des Formulars, wo steht
Datensätze und die Symbole für Vor und Zurück bzw. Neuer Datensatz angezeigt werden
Geht das überhaupt??
ja es geht. Dafür musst du die Eigenschaften des Formulars entsprechend ändern. Navigationsschaltflächen = nein

Grüße aus Rostock
Wolfgang
(Netwolf)
Member: saphirmd
saphirmd Jan 03, 2012 at 08:07:43 (UTC)
Goto Top
Moin Wolfgang

Ich bin ja in Sachen VBA ziemlicher Neuling und probiere mich jetzt an einem Buch erstmal aus,
lesen, Beispiele ausprobiewren und so.

Ich habe auch eine Übungs-CD im Buch und sind einzelne Proceduren schon gespeichert, aufrufbar von "MAKROS" im Datenbankfenster auf.
Nun sind da schon etliche Prozeduren gespeichert. Aber teilweise funktionieren (nur einfache wie Rechenanweisungen)diese Prozeduren nicht.
Beim Aufruf im Editor Fenster (Anklicken derProz. und Ausführen-Symbol) erscheint immer ein Fenster mit d. Bezeichnung "Makro" mit mehreren aufgelisteten Proz.namen, aber die die iich angeklickt habe ist nicht dabei.
Wenn ich im Direktfenster eine selbsterstellte Proz. aufrufen will, bekomme ich auch einen Fehler....
Einzelne Befehle (wie Formularverweis.Caption oÄ) funktionieren im Direktfenster.

"Fehler beim Kompilieren"
"Sub oder Function nicht definiert"

Aber um weiterzukommen, muss ich doch irgendwelche Prozeduren ausführen.
Wäre schön, wenn Du einen Rat für mich hättest.

Gruß aus dem (heute) sonnigen Magdeburg
Sascha
Member: NetWolf
NetWolf Jan 03, 2012 at 18:22:34 (UTC)
Goto Top
Moin Moin,

wichtig ist erst mal, dass du ALLE Prozeduren aus dem Buch in deinen Code übernimmst. Das Ausführen einzelner Prozeduren/Funktionen führt vermutlich dazu, dass weitere Prozeduren und/oder Funktionen aus dem Buch aufgerufen werden.

Wichtig ist auch der Unterschied zwischen Makro und VBA-Code. Das ist nicht das gleiche! Du kannst zwar Makros zu VBA-Code konvertieren, aber umgekehrt geht es nicht. Mein Tipp: du benötigst keine Makros! Wenn du VBA programmieren kannst, sind Makros überflüssig und viel zu umständlich.

Ausführen im Editor macht keinen Sinn. Einzelne Prozeduren/Funktionen sind nicht einfach durch draufklicken ausführbar. Ausgeführt werden Makros und VBA-Code ist eben kein Makro. Das Direktfenster ist zur Fehlersuche und nicht als "normales" Fenster zu nutzen.

Du benötigst erst mal eine Testumgebung. Dafür reicht i.d.R. eine Tabelle und ein Formular.
Aus dem Formular heraus kannst du dann Prozeduren und Funktionen in VBA aufrufen. Du kannst dafür Tasten definieren, oder die Ereignisse des Formulars nutzen.

Grüße aus Rostock
Wolfgang
(Netwolf)
Member: saphirmd
saphirmd Jan 18, 2012 at 12:46:15 (UTC)
Goto Top
Hallo Wolfgang !

Ich bin schon ein bisschen weiter im Buch gekommen, habe leider aber immernoch Probleme.....

Zum Bsp. mit dem Ausdruck
Stringvariable = Formularverweis!txtSuchen
da ich ein Bsp. habe, in dem Datensätze gesucht werden...
Die Stringvar "Suchtext" wird in ein ungebundenes Feld eingegeben, danach wird der pasende Datensatz mit Hilfe der Proc.

Public Sub neue01()

Dim Suchtext As Variant
Suchtext = Form!frm_Ku_Be!txtSuchtext

If IsNull(Suchtext) = True Then
Beep
MsgBox "Es ist kein Suchtext vorhanden!"
Else
Form!frm_Ku_Be!Name.SetFocus
DoCmd.FindRecord FindWhat:=Suchtext, Match:=acAnywhere, _
MatchCase:=False, Search:=acDown, _
SearchAsFormatted:=False, _
OnlyCurrentField:=acCurrent, _
FindFirst:=True
End If

End Sub

gesucht.
Nun meine Frage:Die Schaltfläche für das Suchen ist das ein Befehlsschalter
Der Befehlsschalter funktioniert aber in meinem nachgebauten Formular nicht.

Der Fehler bei
Suchtext = Form!frm_Ku_Be!txtSuchtext
"Access kann das in Ihrem Ausdruck angegebene Form. frm_KuBe nicht finden"


Die Originalproc aus dem Buch funktioniert bei mir der Me!-Eigenschaft nicht

Me!-Eigenschaft ist ein Verweis auf das aktuelle Formular

Hast Du eine Idee??

Danke.

Gruß Sascha