Top-Themen

Aktuelle Themen (A bis Z)

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

Problem mit Recordset.Update

Frage Microsoft Microsoft Office

Mitglied: Lord-X

Lord-X (Level 1) - Jetzt verbinden

27.07.2007, aktualisiert 30.07.2007, 5999 Aufrufe, 8 Kommentare

Hallo Leute.

Folgendes Problem:

Ich möchte über ein Formular Daten in einer Tabelle ändern.
Dabei soll der Formular nach einer benutzerdefinierten Kundennummer suchen ( das klappt bestens). Dann kann der Benutzer z.B. "Anmerkungen" ändern und mit Klick auf den Button "Speichern" die Änderung in Tabelle übernehmen (bzw. die Anmerkung bei dem jeweiligen Kunden ändern).

Es kommt jedoch zu einer Fehlermeldung:

http://img514.imageshack.us/img514/2158/3022em0.png

.
Wobei in meiner Tabelle "Kundenstamm" nur die Kundennummer auf Index "Ja (ohne Duplikate)" gesetzt ist.
Primärschlüssel ist nicht definiert.

Mein Code für den "Speichern"-Button sieht wie folgt aus:

' ---------------------------------------------------------------------------

Private Sub btnKDedit_Click()
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("Kundenstamm", dbOpenDynaset)

rs.Edit
rs("Kundennr") = Me!lstKD
rs("Firma") = Me!txtFirma
rs("Firma2") = Me!txtFirma2
rs("Ansprechpartner") = Me!txtAnsprechpartner
rs("Telefonnummer") = Me!txtTelefonnummer
rs("Strasse") = Me!txtStrasse
rs("PLZOrt") = Me!txtPLZOrt
' rs("ID") = Me!txtID
rs("Tour") = Me!txtTour
rs("Wochentag") = Me!txtWochentag
rs("SelectDoc") = Me!chkSD
rs("Autoteilepilot") = Me!chkATP
rs("Geburtstag") = Me!txtGeburtstag
rs("Anmerkungen") = Me!txtAnmerkungen
rs.Update
rs.Close
Set rs = Nothing

MsgBox "Die Änderung wurde gespeichert.", vbOKOnly, "Datensatzänderung"

End Sub

' ---------------------------------------------------------------------------

Ich benutze Access2003, falls das weiterhilft.

Bitte helft mir.
Da ich eine Noob in Sachen OfficeVBA bin, komme ich da ech nincht weiter.


Danke im Vorraus
Mitglied: verkehrsberuhigt
27.07.2007 um 14:13 Uhr
Ich sehe offengestanden gar nicht, wie du das Recordset auf den von dir gewünschten Datensatz eingrenzt.
Falls ich das Script richtig lese, wird der erste (?) oder ein beliebiger (?) Datensatz geändert...
Und beim Speichern kommt es natürlich zu einem Indexkonflikt weil die Kundennummer bereits vorhanden ist.

Wenn du dir unsicher bist: warum lässt du die User nicht direkt im Formular die Daten ändern? Wofür soll ddieser Umweg über eine Schaltfläche gut sein?
Bitte warten ..
Mitglied: Lord-X
27.07.2007 um 14:44 Uhr
Wenn du dir unsicher bist: warum lässt
du die User nicht direkt im Formular die
Daten ändern?


erstmal danke für die Antwort.

Wie meinst du das???

Ich bin ein Anfänger in diesen Sachen. Ob du das Noob-verständlich erklären könntest.
Bitte warten ..
Mitglied: Lord-X
27.07.2007 um 14:46 Uhr
Ich sehe offengestanden gar nicht, wie du das
Recordset auf den von dir gewünschten
Datensatz eingrenzt.
Falls ich das Script richtig lese, wird der
erste (?) oder ein beliebiger (?) Datensatz
geändert...
Und beim Speichern kommt es natürlich
zu einem Indexkonflikt weil die Kundennummer
bereits vorhanden ist.

Wie kann ich das mit dem Eingränzen machen?
Und wie könnte ich den Konflikt mit der bereits vorhandenen KD.Nr. am Besten lösen?
Bitte warten ..
Mitglied: verkehrsberuhigt
27.07.2007 um 14:49 Uhr
a) Versuche mir zu erklären was Dein Script bewirken soll.

b) Du kannst Tabellen mit Hilfe von Formularen direkt bearbeiten. Bei Access wird jede Änderung, die du in einem Formular vornimmst, dass direkt mit einer Tabelle verknüpft ist, sofort bei der Eingabe (präziser beim Verlassen des Feldes oder des Datensatzes) gespeichert. Hast Du schon einmal den Formularassistenten ausprobiert?
Bitte warten ..
Mitglied: Lord-X
27.07.2007 um 17:31 Uhr
Zu a)

Mein Script soll bewirken, dass die Eingaben, die in die Felder (z.B. txtAnsprechpartner, txtTelefonnummer und txtGeburtstag) eingegeben worden sind, nach dem ButtonClick unter der dazugehörigen Kundennummer (die unter "lstKD" steht) gespeichert werden.

Also:

Es sind nur die Textboxen txtAnsprechpartner, txtTelefonnummer, txtGeburtstag für die Bearbeitung freigegeben. Andere Felder kann man in diesem Formular nicht verändern.



Zu b)

Wie kann ich es dann so einrichten, dass der User die Kundennummer eingeben kann und dazu gehörigen Daten in den entsprechenden Felden angezeigen lassen kann (z.B. Firmenname in "txtFirma", Telefonnummer in "txtTelefonnummer" usw.) ohne die Leiste am unteren Rand des Formular (die mit DS-Nummer) zu verwenden (diese wollte ich dann sowieso ausblenden).
Bitte warten ..
Mitglied: jato11
27.07.2007 um 20:02 Uhr
Wie kann ich es dann so einrichten, dass der
User die Kundennummer eingeben kann und dazu
gehörigen Daten in den entsprechenden
Felden angezeigen lassen kann (z.B.
Firmenname in "txtFirma",
Telefonnummer in "txtTelefonnummer"
usw.) ohne die Leiste am unteren Rand des
Formular (die mit DS-Nummer) zu verwenden
(diese wollte ich dann sowieso ausblenden).
Hallo Lord-X,
ich nutze dafür ein Suchfeld in meinem Formular.
Nach verlassen des Feldes wird ein Makro ausgeführt.
Meistens in der Art:
Gehe zu Steuerelement Kundennummer, Suchen Datensatz = Suchfeld

Viele Grüße
Torsten
Bitte warten ..
Mitglied: Lord-X
30.07.2007 um 10:58 Uhr
@jato11

hast du da vlt. einen BeispielCode ??
Bitte warten ..
Mitglied: jato11
30.07.2007 um 13:57 Uhr
Einen Code kann ich Dir leider nicht geben, da ich kein Programmierer bin.
Es gibt folgende Möglichkeit:

Im Formular erstelle ein Textfeld, das bekommt den Namen "Suchen".

In den Eigenschaften des Feldes wird bei "Nach Aktualisierung" das Makro aufgerufen.
Trage hier den Namen des Makros ein z.B. "NameSuchen"

Erstelle ein Makro.
Bei Aktion wähle "Gehe zu Steuerelement" aus.
Trage unten bei "Steuerelemtname" "Name" ein (ohne Anführungszeichen)

Nächste Aktion "Suchen Datensatz"
Trage unten bei "Suchen nach" "[Suchen]" ein (ohne Anführungszeichen mit Klammer)
Wähle unten bei "Vergleichen" "Teil des Feldinhaltes" aus
Wähle unten bei "Groß u Kleinschreibung" "Nein" aus
Wähle unten bei "Suchen" "Alles" aus
Wähle unten bei "Wie formatiert" "Nein" aus
Wähle unten bei "Nur aktuelles Feld" "Ja" aus
Wähle unten bei "Am Anang beginnen" "Ja" aus

Nächste Aktion "Tastaturbefehle"
Trage unten bei "Suchen nach" "{F9}" ein (ohne Anführungszeichen mit Klammer)
Trage unten bei "Warten" "Nein" ein (ohne Anführungszeichen)

Makro speichern als "NameSuchen" (ohne Anführungszeichen)

Wenn Du jetzt einen Namen oder den Teil eines Namens im Feld Suchen eingibst sollte
der entsprechende Kunde aufgerufen werden.

Achtung! Ich verwende Access 2000 bei Access 2003 könten die Bezeichnungen etwas
anders aussehen.

Viele Grüße
Torsten
Bitte warten ..
Ähnliche Inhalte
Server
Problem PHP5.4 Update nun ein Problem
Frage von vServerServer4 Kommentare

Hallo, habe heute auch PHP 5.4 Updatet, nun erhalte ich folgende Meldung: PHP-Quelltext Würde gerne noch auf PHP5.5 ...

Windows Tools
Problem mit excel
Frage von bertaschweigerWindows Tools2 Kommentare

ich habe da mal ein Problem: Excel 2013 / 365 setzt einen Blattschutz, welcher die Zellenbearbeitung (Eingabe) bei ungeschützten ...

PHP
Problem mit php
Frage von jensgebkenPHP4 Kommentare

hallo gemeinschaft ein bekannter hat mir ein kleines script geschrieben in diesem code weerden die variaben f eine sql ...

Windows 10
Großes Problem!
gelöst Frage von L.0.B.0.TWindows 1022 Kommentare

Ich habe Windows im sicheren Modus gestartet, alles läuft normal ausser das nur cmd gestartet wir und ich keine ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 1 TagHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Windows Server
Windows Store Apps
gelöst Frage von PeterleBWindows Server11 Kommentare

Gibt es einen Weg, auf Windows Server 2016 Windows Store Apps wie zum Beispiel die HP Smart App zu ...

Microsoft Office
Outlook Cache Mode Frage
Frage von GwaihirMicrosoft Office11 Kommentare

Hallo zusammen, bin gerade neu in der Firma und lerne hier einige neue Dinge kennen. Zum Beispiel, dass die ...

Microsoft
Erfahrungen mit Webcam over RDP gesucht
Frage von DerWoWussteMicrosoft10 Kommentare

Moin Kollegen. Bekanntlich kann man Webcams nur mit Drittanbietersoftware in RDP reinschleifen. Was nutzt Ihr dazu? Wie stabil funktioniert ...