Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
404to408
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
404to408
404to408
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Access-Anbindung über benutzerdef. Funktionen

Access-Anbindung über benutzerdef. Funktionen
Andreas
Guten Morgen,
ich versuche eine Anbindung an eine Access-Datenbank zu generieren, mein bisheriger Stand ist anbei unter folgendem Link zu finden:
https://www.herber.de/bbs/user/4745.zip
Folgendes Problem nun: Ich habe zwei Funktionen generiert, eine zum Senden des Wertes an die Access-DB und eine zum Holen der Werte aus der DB. Die Funktion mit dem Senden funktioniert einwandfrei, d.h. es wird der Wert in die DB geschrieben und der aktuelle Wert des Felds ausgegeben. Unschön ist nur, dass die Holen-Funktion sich nicht automatisch aktualisiert. D.h. erst wenn ich die Formel kurzzeitig zur Bearbeitung aktiviere (z.B. F2 klicken in der Zelle) und dann die Formel bestätige, erscheint der Wert aktuell aus der DB gezogen. Was mache ich hier falsch bzw. warum aktualisiert Excel nicht alle Formeln automatisch, wenn ich F9 drücke?
Bin für jeden Hinweis dankbar!
Grüße
Andreas

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Access-Anbindung über benutzerdef. Funktionen
Waltraud
Ich würde sagen, es wird keine Zelle geändert, die du zur Aktualisierunge deiner Formel brauchst, beim Seden beziehst du dich auf die Zelle, die geändert wird, aber beim Lesen nicht.
Vielleicht könntest du nach dem Senden Application.Calculate machen - ich habe aber keine Ahnung, ob das funktioniert.
AW: Access-Anbindung über benutzerdef. Funktionen
Andreas
Hallo Waltraud,
deine Anmerkung ist richtig, ich habe auch schon festgestellt, dass sich die Formel aktualisiert, wenn ich einen der Eingangsparamter verändere. "Calculate" bringt leider nichts, hat ja letztlich auch die gleiche Funktion wie "F9" drücken. Habe auch schon soetwas wie "Formula.Update" gesucht, aber das gibt's offenbar nicht ...
Grüße
Andreas
Anzeige
AW: Access-Anbindung über benutzerdef. Funktionen
Waltraud
wenn du angibst
Worksheets(1).Calculate
wird das Tabellenblatt aktualisiert
AW: Access-Anbindung über benutzerdef. Funktionen
Andreas
Bewirkt bei mir leider nichts, die DBRead-Funktion aktualisiert sich trotzdem nicht. Aktualisieren tut sich die Funktion nur, wenn ich tatsächlich einen Eingangsparameter ändere :-(
Gruß
Andreas
AW: Lösungsidee von mir ...
mir
Die einzige Lösung, die ich momentan gefunden habe, ist über eine Workbook_SheetChange Sub den Tabellennamen neu in die Eingabezelle zu schreiben, so dass sich der Wert in der DBRead Funktion aktualisiert ... unschöne Lösung, aber sie funktioniert wenigstens. Wäre nur schön, wenn's eine bessere LÖsung gäbe ...
Gruß
Andreas
Anzeige
AW: Lösungsidee von mir ...
mir
Hallo Andreas,
versuch es mal damit, dass du das folgende Statement als ersten Befehl in die Funktion DBRead setzt:
Application.Volatile True
MfG
Dieter
AW: Lösungsidee von mir ...
mir
Hallo Dieter,
das hilft insofern, als nach Ändern eines Eingabewertes sich die Funktion DBSend aktualisiert, und die DBRead Funktion sich noch erneuten Drücken der F9 neu berechnet. Also leider kein automatisches Neuberechnen der Funktion, obwohl automatische Berechnung aktiviert ist, aber zumindest berechnet sich die Funktion neu, wenn man weiß, dass ein manuelles Neuberechnen notwendig ist.
Damit habe ich nun noch eine Sub angelegt, die automatisch nach jeder Änderung in einem Arbeitsblatt einfach neu berechnet:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
Calculate
End Sub

Ergo ... Problem gelöst und ich danke dir für die Hilfe!
Beste Grüße
Andreas
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige