|
Daten von Liste in Felder eintragen
|
| Autor |
Nachricht |
Zeon
Im Profil kannst Du frei den Rang ändern
Verfasst am: 05. Feb 2010, 07:50 Rufname:
|
|
| Version: Office 2007 |
|
Morgen.
Es ist wahrscheinlich eine Frage die schon oft gestellt wurde, habe sie nur leider so nicht gefunden.
Ich habe in einem Formular ein Kombinationsfeld, welches mir die erste Spalte einer Tabelle anzeigt. Die Tabelle besitzt aber noch weitere Spalten.
Ich möchte beim Anklicken eines Elementes im Kombinationsfeld, das die Daten der restlichen Spalten dieser Zeile in bestimmte Textfelder eingetragen werden.
Außerdem habe ich noch eine kleine Frage: Wenn man ich das Projekt vom Desktop aus öffne, soll sofort ein bestimmtes Formlar geöffnet werden. Wie kann ich das einstellen?
MfG Zeon
|
|
helado
Acc97

Verfasst am: 05. Feb 2010, 09:06 Rufname:
Wohnort: Oberlausitz
|
| |
| Version: Office 2007 |
|
frage 1: DeinFeld.Column(1) ' hier wird aus einem KB-feld der wert in spalte 2 ausgelesen
frage 2:
extras- > start -> formular anzeigen
greetz
_________________ 9 Stimmen in meinem Kopf sagen: "Ich bin nicht verrückt!"
1e pfeift die Tetris Melodie
|
|
Zeon
Im Profil kannst Du frei den Rang ändern
Verfasst am: 06. Feb 2010, 18:29 Rufname:
|
|
| Version: Office 2007 |
|
Danke erstmal für die Antwort.
Wo finde ich denn Extras bei 2007? Habe es Reiter ja nur Start, Erstellen, Externe Daten und Datenbank-Tools.
Und DeinFeld.Column(1) definiere ich einfach in der Liste als "Beim Klicken", ja?
Kann es grad nicht testen, zu wenig Zeit.
LG
|
|
jens05
Moderator

Verfasst am: 06. Feb 2010, 19:24 Rufname:
Wohnort: ~~~~~
|
|
| Version: Office 2007 |
|
Hallo,
die Extras findest du im Office-Button unter "Access-Optionen" (rechts unten) und dann bei "aktuelle Datenbank"
Zu deiner ersten Frage, sollen die Daten nur angezeigt werden? Dann genügt im Anzeigetextfeld das | Code: | | =DeinFeld.Column(1) | Sollen die Daten in die Felder geschrieben werden, sollte folgendes im Ereignis "Nach Aktualisierung" des Kombifeldes als Ereignisprozedur gehen.
| Code: | | Me!NamedesTextfeldes = Nz(Me!NamedesKombi.Column(1)) |
_________________ mfg jens05
|
|
Zeon
Im Profil kannst Du frei den Rang ändern
Verfasst am: 09. Feb 2010, 01:25 Rufname:
|
| |
| Version: Office 2007 |
|
ok, da ich gleich noch 1-2 weitere Fragen habe, versuche ich das Formular grob zu beschreiben.
Ich habe ein Listenfeld, welches mir die 1. Spalte anzeigt. Daneben befinden sich mehrere Textfelder, die alle Spalten der Tabelle auslesen sollen und anzeigen sollen, je nachdem, was man in dem Listenfeld anklickt.
Dafür habt ihr mir ja den Befehl | Code: | | =DeinFeld.Column(1) |
gegeben, doch wo schreibe ich den hin, das ist mir nicht wirklich klar.
Dann hänge ich leider an einer weiteren stelle. Und zwar kreiere ich gerade die Button neu, speichern, bearbeiten und löschen.
Das problem bei neu ist, das wenn ich neu angeklickt habe, etwas eingebe und ausversehen wieder neu drücke, es in die Tabelle aber eingetragen wird. Das soll natürlich nicht so sein!
| Code: | DoCmd.GoToRecord , , acNewRec
cmd_ma_loeschen.Enabled = False
cmd_ma_bearbeiten.Enabled = False
' Hier folgen nur noch Locked und Focus Befehl |
Für was steht genau die 1. Zeile? denn das habe ich aus einer Art Vorlage heraus genommen.
Speichern habe ich mit folgendem Code gemacht:
| Code: | Recordset.AddNew
Recordset!ma_name = Me!ma_name
Recordset!ma_vorname = Me!ma_vorname
...
cmd_ma_loeschen.Enabled = True
cmd_ma_bearbeiten.Enabled = True
Liste_ma.Requery
Liste_ma.Locked = False |
Das dürfte ja korrekt sein und funktioniert. Mit den anderen beiden muss ich mich erst noch beschäftigen, soweit bin ich noch nicht ^^
|
|
KlausMz
Moderator Access

Verfasst am: 09. Feb 2010, 09:58 Rufname:
Wohnort: Irgendwo in der Pfalz
|
|
| Version: Office 2007 |
|
Hallo,
hier läuft glaube ich einiges durcheinander.
| Zitat: | | Das problem bei neu ist, das wenn ich neu angeklickt habe, etwas eingebe und ausversehen wieder neu drücke, es in die Tabelle aber eingetragen wird. | Das passiert nur bei gebundenen Formularen.
Und noch was, es ist nicht notwendig vorhanden Daten in einer anderen Tabelle noch mal zu speichern. Es genügt vollkommen den Primärschlüssel des Datensatzes aus dem Kombi zu nehmen und als Fremdschlüssel zu speichern.
Die Übertragung von Name (ganz schlechter Feldname!) und Vorname ist nicht notwendig bzw. falsch. Und wenn für die Personen ein Datensatz vorleigt, kann man nach Auswahl mit Kombi die andernen Felder im neuen Datensatz anzeigen ohne Column(x), indem die Ursprungstabelle in die Abfrage für das Formular aufgenommen wird. Dann hast Du auch die anderen Felder ganz normal zur Anzeige zur Verfügung.
Es wäre also erst mal zu klären, ob gebundenes oder ungebundenes Formular.
Wenn gebunden, ist das überflüssig:
| Code: | Recordset.AddNew
Recordset!ma_name = Me!ma_name
Recordset!ma_vorname = Me!ma_vorname |
Ich würde immer vorziehen, gerade als Anfänger mit gebundenen Formularen zu arbeiten. Auch damit kann man ungewollte Datensätze verhindern.
Schaue mal in diesen Beitrag:
Eingabeformular ungebunden/ gebunden
Dort ist auch ein Beispiel.
_________________ Gruß
Klaus . . . . . Der sich über Feedback freut.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
|
|
Zeon
Im Profil kannst Du frei den Rang ändern
Verfasst am: 09. Feb 2010, 13:20 Rufname:
|
|
| Version: Office 2007 |
|
Hallo.
Danke erstmal für die Hinweise. Schade das man in deinem Beispiel nicht in die Entwurfsansicht gehen kann, um sich den vba code anschauen und nachvollziehen zu können.
Mir ist jetzt klar, das es ein gebundenes Formular werden soll, so wie du es auch empfiehlst, mit dem Primärschlüssel ku_nr.
| Code: | | Und noch was, es ist nicht notwendig vorhanden Daten in einer anderen Tabelle noch mal zu speichern. Es genügt vollkommen den Primärschlüssel des Datensatzes aus dem Kombi zu nehmen und als Fremdschlüssel zu speichern. |
Wie meinst du das genau? Ich habe eine Tabelle, das Kombifeld und die Textfelder. Je nachdem, was ich im Kombifeld anklicke, sollen die Daten auch in den Textfeldern erscheinen. ok, das ist klar, aber wie genau mach ich das mit der Übergabe des Primärschlüssels als Fremdschlüssel damit ich nicht column(x) benutzen muss?
Vielen Dank schonmal!
|
|
KlausMz
Moderator Access

Verfasst am: 09. Feb 2010, 13:28 Rufname:
Wohnort: Irgendwo in der Pfalz
|
|
| Version: Office 2007 |
|
Hallo,
| Zitat: | | Schade das man in deinem Beispiel nicht in die Entwurfsansicht gehen kann, | Natürlich geht das, ich lade hier doch keine geschützten DBs hoch.
Starte die DB mit gedrückt gehaltener Shift Taste.
Dachte das hätte sich inzwischen rumgesprochen.
_________________ Gruß
Klaus . . . . . Der sich über Feedback freut.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
|
|
Zeon
Im Profil kannst Du frei den Rang ändern
Verfasst am: 09. Feb 2010, 13:49 Rufname:
|
|
| Version: Office 2007 |
|
| cool, danke. Stimmt, davon habe ich schon was gelesen.
|
|
Zeon
Im Profil kannst Du frei den Rang ändern
Verfasst am: 09. Feb 2010, 16:20 Rufname:
|
|
| Version: Office 2007 |
|
Hallo.
Also leider bin ich nicht wirklich schlau daraus geworden. Ich habe mir überlegt, das ich trotzdem gerne mit einer Hilfstabelle arbeiten möchte.
Sie habe auch angefangen zu programmieren und es klappt auch soweit, aber nicht auf dem weg, den du mir weisen wolltest. Ich weiß einfach nicht, wie ich den Textfeldern sagen sollen, das sie den Fremdschlüssel aus dem Listenfeld nehmen sollen und sich dann die Daten aus der Tabelle nehmen sollen.
Ich habe es jetzt mal mit
| Code: | | Me!NamedesTextfeldes = Nz(Me!NamedesKombi.Column(1)) |
gemacht und auch die Buttons Neu, Bearbeiten und Speichern funktionieren einwandfrei. Löschen will nur noch net richtig.
Aber das Problem dabei ist ja eben, das alle Werte, die in den Textfeldern erscheinen sollen, in der Liste enthalten sein müssen. Aber dort soll ja nur eine Spalte der Tabelle stehen. (ka ob dort dann auch der Fremdschlüssel enthalten sein muss, bzw. ob man den dann irgendwie ausblenden kann)
Bitte um Hilfe ;)
EDIT: Oder gibt es eine Möglichkeit, das das Listenfeld die zusätzlichen Spalten besitzt, aber nicht angezeigt werden und somit trotzdem verarbeitet werden?
LG Roy
PS: Habe mal das sehr kleine Programm bei Uploaded hochgeladen, wie ich es eben schnell als Test erstellt habe. Ich hoffe es ist erlaubt hier zu verlinken, wollte mich jetzt nicht erst Anmelden für den Upload von Dateien. Klick mich
|
|
MissPh!
Office-VBA-Programmiererin
Verfasst am: 09. Feb 2010, 16:53 Rufname:
Wohnort: NRW
|
|
| Version: Office 2007 |
|
Hallo. | Zitat: | | Oder gibt es eine Möglichkeit, das das Listenfeld die zusätzlichen Spalten besitzt, aber nicht angezeigt werden | Du kannst sie mit Spaltenbreite 0 ausblenden.
Nachtrag:
Habe mir inzwischen mal dein Formular angesehen - was du da machst ist willkürliche Datenzerstörung.
Du darfst den Steuerelementen eines gebundenen Formulars keine Daten aus anderen Datensätzen zuweisen, damit überschreibst du den aktuellen Datensatz.
Wenn du ein Listenfeld zum Suchen anlegen willst, so lass dir vom Assitenten helfen. Der bietet dir dann die Option "Einen Datensatz im Formular basierend auf dem im Listenfeld gewählten Eintrag suchen".
_________________ Gruß MissPh!
(HTH - hope to help)
Zuletzt bearbeitet von MissPh! am 09. Feb 2010, 17:27, insgesamt 2-mal bearbeitet |
|
Zeon
Im Profil kannst Du frei den Rang ändern
Verfasst am: 09. Feb 2010, 17:24 Rufname:
|
|
| Version: Office 2007 |
|
Die Einstellung habe ich auch schon gesucht, aber leider nicht gefunden. Hätte gedacht sie ist im Abfrage-Generator, aber sehe sie nicht ^^
Mir ist auch gerade ein Fehler in meinem Code aufgefallen. Ich dachte, da es ja gebunden ist, brauch ich bei der Änderen der Daten die einfach nur umschreiben und danach die Textfelder als nicht anklickbar definieren, damit das als Speichern gilt. Doch leider wird immer die erste Zeile verändert und nicht die gerade aktive.
Mit Neu + Speichern klappt es wunderbar.
|
|
MissPh!
Office-VBA-Programmiererin
Verfasst am: 09. Feb 2010, 17:27 Rufname:
Wohnort: NRW
|
|
| Version: Office 2007 |
|
Nein, nicht in der Abfrage sind die Spalten auszublenden, sondern im Listenfeld.
Dort gibt es die Eigenschaft Spaltenbreiten.
_________________ Gruß MissPh!
(HTH - hope to help)
|
|
KlausMz
Moderator Access

Verfasst am: 09. Feb 2010, 17:49 Rufname:
Wohnort: Irgendwo in der Pfalz
|
|
| Version: Office 2007 |
|
Hallo,
das ist wie bereits gesagt, völlig falsch.
Ein Listenfeld/Kombinationsfeld dient entweder zum Suchen eines Datensatzes oder zum Setzen eines Primärschlüssels in einer anderen Tabelle. Mit einer Tabelle und macht Dein Vorhaben keinen Sinn.
| Zitat: | | Ich habe mir überlegt, das ich trotzdem gerne mit einer Hilfstabelle arbeiten möchte. | Zu was eine Hilfstabelle, versteh ich jetzt nicht was der Begriff Hifstabelle jetzt soll. In dem gezeigten Formular ist das Listenfeld in der Form völlig sinnlos. Das Listenfeld kann ja nur die Mitarbeiter enthalten, die bereits angelegt sind.
Und wenn Du klickst, überschreibst Du den Datensatz eines bestehenden Mitarbeiters. Mit den Buttons hast Du doch alles was Du brauchst. Wozu soll es dann noch gut sein?
Wenn Du vieleicht mal erklären könntest, was Du vorhast ohne mal die Umsetzung im Blick zu haben könnte man ja möglicherweise besser helfen.
Du fängst hier etwas völlig falsch an, das man so nicht braucht 100%
_________________ Gruß
Klaus . . . . . Der sich über Feedback freut.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
|
|
MissPh!
Office-VBA-Programmiererin
Verfasst am: 09. Feb 2010, 17:55 Rufname:
Wohnort: NRW
|
| |
| Version: Office 2007 |
|
| Zitat: | | Doch leider wird immer die erste Zeile verändert und nicht die gerade aktive. | Die erste Zeile ist die aktive, da du in dem Formular ja gar nicht navigierst, sondern immer auf dem ersten Datensatz hängen bleibst.
Lege das Listenfeld neu an, mit Hilfe des Assistenten, und gut ist's!
_________________ Gruß MissPh!
(HTH - hope to help)
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum nicht posten Du kannst Dateien in diesem Forum herunterladen
|
|
|
|
| Verwandte Themen |
| Forum / Themen |
Antworten |
Autor |
Aufrufe |
Letzter Beitrag |
 |
Access Formulare: Ja/Nein Felder Ansicht bei Anzeige in einem Listenfeld |
0 |
Gast |
100 |
22. Jan 2010, 10:53 Gast  |
 |
Access Formulare: Bestimmte Felder eines Datensatzes duplizieren |
2 |
adular |
305 |
18. Mai 2009, 14:30 adular  |
 |
Access Programmierung / VBA: Herausfiltern von Daten |
7 |
gast11111 |
201 |
06. Mai 2009, 13:09 gast11111  |
 |
Access Berichte: Im Bericht alle Felder die 0 ausweisen blank machen |
2 |
beat78 |
201 |
07. Jan 2009, 17:40 beat78  |
 |
Access Formulare: Wert bei geöffnetem Formular direkt in Tabelle eintragen |
2 |
PeterD |
100 |
11. Dez 2008, 22:48 PeterD  |
 |
Access Programmierung / VBA: Bestimmte Daten aus Excel holen |
5 |
deltapapa |
709 |
08. Dez 2008, 15:02 deltapapa  |
 |
Access Programmierung / VBA: Bekomme keinen Daten in meinen Bericht... ;-( |
6 |
Mäxchen |
201 |
03. Nov 2008, 20:59 Mäxchen  |
 |
Access Programmierung / VBA: FindFirst - mehrere Felder als Suchkriterium? |
10 |
Wolfgang 1958 |
403 |
10. Mai 2008, 14:52 Wolfgang 1958  |
 |
Access Programmierung / VBA: Daten aus DB2 Datenbank |
1 |
alex br. |
1110 |
19. Apr 2007, 16:45 Nouba  |
 |
Access Programmierung / VBA: Windows User auslesen und in Tabelle eintragen |
2 |
nakoda |
4549 |
27. Jan 2007, 14:14 nakoda  |
 |
Access Programmierung / VBA: Import von Excel Daten und verschieben in eine neue Tabelle |
2 |
jupps |
908 |
28. Sep 2006, 10:28 jupps  |
 |
Access Programmierung / VBA: Bestimmte daten aus Tabelle in datei exportieren |
5 |
diomercado |
2525 |
11. Sep 2006, 22:49 diomercado  |
| |
|