Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Access- VBA Formularfelder auslesen und kopieren

Frage Microsoft Microsoft Office

Mitglied: saphirmd

saphirmd (Level 1) - Jetzt verbinden

23.12.2011 um 08:54 Uhr, 27166 Aufrufe, 11 Kommentare

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-
Mitglied: thaenhusen
23.12.2011 um 12:06 Uhr
Moin.

Du kannst mit

01.
Forms("Formular").Feld = Forms("Formular2").Feld 
02.
bzw. für Unterformulare 
03.
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
Bitte warten ..
Mitglied: NetWolf
23.12.2011 um 14:00 Uhr
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)
Bitte warten ..
Mitglied: saphirmd
25.12.2011 um 01:47 Uhr
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-
Bitte warten ..
Mitglied: NetWolf
25.12.2011 um 15:59 Uhr
Moin Moin,

nö, verständlich ist das nicht

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)
Bitte warten ..
Mitglied: saphirmd
27.12.2011 um 11:55 Uhr
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
Bitte warten ..
Mitglied: NetWolf
27.12.2011 um 13:18 Uhr
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)
Bitte warten ..
Mitglied: saphirmd
27.12.2011 um 17:29 Uhr
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
Bitte warten ..
Mitglied: NetWolf
27.12.2011 um 18:01 Uhr
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)
Bitte warten ..
Mitglied: saphirmd
03.01.2012 um 09:07 Uhr
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
Bitte warten ..
Mitglied: NetWolf
03.01.2012 um 19:22 Uhr
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)
Bitte warten ..
Mitglied: saphirmd
18.01.2012 um 13:46 Uhr
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
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
Kreuztabelle Access + VBA Code (7)

Frage von Dr.Cornwallis zum Thema Microsoft Office ...

VB for Applications
gelöst Xml-Datei laden bzw. auf Festplatte kopieren und per VBA in eine Access-Tabelle speichern (22)

Frage von machohunk zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...