Zum Inhalt springen

Access 2000: Aus ungebundenen Steuerlementen Daten aus Tabelleln löschen


fisheye

Empfohlene Beiträge

Hallo ihr lieben,

ich habe da ein kleines Problem in Access. Ich beziehe in einem Formular über SQL Code Daten aus einer Tabelle mit Personendaten (ungebunden). Der Anwender soll nun die Möglichkeit haben, die Felder zu editieren. Beim Drücken auf den Speichern Button sollen die alten Einträge (in der Tabelle) durch die neuen Einträge in den Steuerelemeten im Formular ersetzt werden. Damit der zu ersetzende Wert in der Tabelle gefunden wird, wird die ID aus der Tabelle mit der ID im Formular verglichen (ID im Formular ist an die Tabelle gebunden). Wie könnte ich das ganze nun realisieren?

Über Vorschläge würde ich mich freuen :)

Ciao fishy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Darüber hatte ich auch schon nachgedacht, aber ich wußte nicht, wie ich es in Access realisieren sollte. Wie muss das denn so im groben aussehen? Wirds im VB Code Fenster gemacht? Variablen die Werte zuweisen, sollte ich glaube ich noch draufhaben... *schäm* :(

Dim db As Database

Dim rst As Recordset

Set db = CurrentDb

Set rst = db.OpenRecordset("tblPersonendaten", dbOpenDynaset)

rst.update

... ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

hi,

ich kenne mich mit access im speziellen nicht aus, evtl gibt es fuer diese anforderung auch board-mittel von access...

ein formular hat in access ein 'code-fenster' in dem du den vba-code schreiben kannst. in diesem machst du am besten die sql-abfrage und fuellst die controls (textfelder?) mit werten. zu jedem wert, der geaendert werden kann, speichertst du den wert in einer zwischenvariablen.

beim klick auf den speichern-knopf (im ereignis button_click) vergleichst du dann die werte aus den controls mit den zwischengespeicherten.

hoffe, es hilft...

bei weiteren fragen einfach posten

Link zu diesem Kommentar
Auf anderen Seiten teilen

Meine Vorgehensweise war:

Es spielt ja keine Rolle, welche Werte du eingelesen hast. Was du benötigst, ist einfach die ID.

Ich habe in Access (und es funzt ganz ordentlich) immer ein zweites (gebundenes) Formular mit allen möglichen zu ändernden Feldern(gleichen Namen wie im ersten Formular) erstellt, welches bei dem Speichern - Button nichtsichtbar aufgerufen wird.

Beim Öffnen (- Ereignis) springt es zu dem angegebenen Datensatz. Dann durchläuftst du dort alle Felder und überschreibst den Wert mit den Werten deines ersten Formulars und schliesst dieses zweite Formular einfach wieder. (Dieses kann man entsprechend bei Abhängigkeiten [Firma - Ansprechpartner in der Firma etc.] auch mit mehr Formularen machen).

Oder anders : Baue mit deinem Sichtbaren Formularen eine Scheinwelt, die nichts anrichten kann und Steuere über nichtsichtbare Formulare deine Datenmanipulation.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hmm,ich habs nun mal mit nem RecordSet Update versucht (jedenfalls nen bissel Ahnung von), aber mit der Formulierung des Codes habsch so meine Probleme (s.o. Thread). Laut Access soll es damit aber möglich sein, direkt Werte in Feldern in der Tabelle mit den neuen Werten zu überschreiben. Weiß da wer was?

Aber danke erstmal für die tipps

Edit:

Ja danke Der Kleine, die Idee ist doch perfekt. Hättest du was dagegen, mir den Code für den Felddurchlauf mitzuteilen? Es wäre jedenfalls sehr nett.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Na mal schauen :


Private Sub Form_Load()


Dim ctl As Control

Dim ctl1 As Control


    For Each ctl In Me.Controls

            Select Case ctl.name

                Case "firmen_id":

                        ctl = Forms![formular_firmendaten].firmen_id

                Case "letzte_aktualisierung":

                        ctl = Now

                Case Else:

                    For Each ctl1 In Forms![neuer_ansprechpartner].Controls

                        If ctl1.name = ctl.name Then

                            ctl = ctl1

                        End If

                    Next

            End Select

    Next

    DoCmd.Close acForm, Me.name

    Forms![formular_firmendaten].[unterformular_ap].Requery


End Sub


Das Formular heißt : [formular_ansprechpartner_uebergabe] entnimmt alle Felder aus dem Formular : [neuer_ansprechparter] und ordnet die Firmen - Id zum Feld "firmen_id" und das Änderungsdatum zum Feld "letzte_aktualisierung" Zum Schluß wird das Unterformular [unterformular_ap] im Formular [formular_firmendaten] aktualisiert, damit alle Neuen Werte für den Ansprechpartner entsprechend im Ausgangsformular angezeigt werden. PS : Das gleiche funktioniert mit neuen Datensätzen, nur das ich beim Öffnen zu einem neuen Datensatz springe (hier : acFormAdd), nicht auf den bereits vorhandenen:
Private Sub schliessen_Click()

    DoCmd.OpenForm "neuer_ansprechpartner_uebergabe", , , , acFormAdd, acHidden

end sub

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin !

Du kannst wie von Dir oben schon angedacht das ganze über Recordset direkt in die Tabelle schreiben, falls es Dich noch interessiert, das funzt so:

Dim dbs As Database

Dim rst As Recordset

Set dbs = CurrentDb

Set rst = db.OpenRecordset("Tabelle", dbOpenDynaset)

'zum ersten Datensatz mit der ID springen

rst.FindFirst "ID = " & txt_ID.Value

'Datensatz zum Ändern öffnen

rst.Edit

'neue Werte zuweisen

rst!Feld1 = txt_Feld1.Value

rst!Feld2 = txt_Feld2.Value

...

'Änderungen speichern

rst.Update

Hoffe das hilft Dir weiter !

gruß

Christian

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...