Guten Tag,
ich bin neu hier also erstmal hallo alle zusammen :).
Ich habe folgendes Problem:
Ich habe bisher daten von einem DDE Server in excel aktualisieren lassen und über ein makro die daten in einer anderen tabelle auflisten lassen. Der Befehl für die DDE Daten in excel ist wie folgt: =PR|WERT!TABELLE1
Jetzt ist es leider so dass an einem tag so um die 100.000 Zeilen zusammenkommen.
Nun meine Frage an euch:
Ist es möglich Daten von einem DDE Server in einem Formular in ACCESS auszugeben um sie dann automatisch in einer Tabelle zu listen? Ich habe versucht im Formulartextfeld bei Standartwert den DDE Befehl (=PR|WERT!TABELLE1) einzugeben aber er hat ein Problem mit dem Zeichen "|" doch dieses ist in der Formel notwendig und in excel auch kein Problem.
Ich hoffe ihr habt gute Tipps für mich :)
Grüße
Hi,
was bedeutet das |-Zeichen, bzw. was für ein Befehl ist "PR|Wert" und wo kann man das nachlesen?
Generell würde ich sagen, dass die DDE-Verbindung ebensogut aus Access heraus hergestellt werden können sollte. Dazu müsste man aber wohl genaueres über diesen DDE-Server wissen.
Das kann ich dir leider aucht nicht so genau erklären. Der DDE Server Läuft über ein Programm auf meinem PC und der der Befehl =PR|WERT!TABELLE1 ist der vom programm vorgegebene DDE connection string für excel.
=PR|WERT!TABELLE1
PR = Das Programm
WERT = ein bestimmter wert aus Tabelle1 vom programm
Tabelle = eine Tabelle vom Programm
mehr weis ich leider nicht. Wie geht es denn generell in access einen kontakt mit einem DDE Server herszustellen?
Es gibt dazu diverse VBA-Befehle in Access wie bspw. DDEInitiate und DDETerminate, aber welche Parameter da angegeben werden müssen, hängt von der eingesetzten Software ab.
ich habe es nun im standartwert so versucht:
DDEInitiate("PR, WERT, TABELLE1")
aber es kommt der Fehler: Der von ihnen eingegebene _Ausdruck enthält eine Funktion, für die die falsche Anzahl an Argumenten angegeben ist.
Wäre es auch möglich es so zu machen:
In meiner excel tabelle in A1 ändert sich ständig der wert durch den dde server. Nun soll der wert aus A1 in einer access tabelle gelistet werden und wenn sich A1 ändert den neuen Wert in der Access tabelle in die nächste zeile listen.
Herumprobieren ist hier wohl keine Lösung. Als allererstes solltest du dir die Verwendung der Befehle in der Access-Hilfe ansehen. Und dann wirst du dir Informationen zu deinem "DDE Server" besorgen müssen.
Wie sieht das denn in der Excel-Datei aus, da gibt es doch sicher VBA-Code?
In Excel ist es Realtiv einfach und ohne VBA:
In A1 Steht nur ( =PR|WERT!TABELLE1 ) und dort aktualisiert es mir ständig den Wert aus dem Programm.
Das kann ich mir ehrlich gesagt nicht vorstellen, irgendwie muss die Verbindung doch hergestellt werden. Und irgendwas muss für die ständige Aktualisierung sorgen.
Glaub mir :-) ich kann eine neue excel datei erstellen das hier rein kopieren ( =PR|WERT!TABELLE1 ) enter drücken und die werte aktualisieren sich :P
Wenn ich das tue hagelt es Fehlermeldungen. ;D
Das geht auch nur wenn ich das Programm mit dem DDE Client offen habe ;D
Aha, du startest es also manuell. Aber das nützt alles nichts, du musst eine Dokumentation vom Hersteller haben, wie das eingesetzt werden kann, welche Schnittstellen es gibt, etc.
Hmm ich google mich schon zu tode aber ich werd schon noch was dazu finden. Aber trotzdem Danke für deine Unterstützung :-)
So das steht in der dokumentation:
Export of Quotes
Source data serving as a basis for the entire analytical work of the terminal user are those about security price changes. This information is provided by the brokerage company. Price data allow to draw symbol charts, research in financial markets, use various trading tactics, and make trade decisions. Quotes represent files with records in format of "SYMBOL, BID, ASK, DATE" (security symbol, bid price, ask price, date and time) and income in the terminal automatically as soon as connection to the server has been established.
The terminal allows to export the current quotes to other programs in the real-time mode through "DDE" (Dynamic Data Exchange) protocol. This is a protocol of operational systems of MS Windows used for dynamic data exchange among various applications. Quotes are given through DDE only at incoming of new ticks (ADVISE mode), but not immediately on request (REQUEST mode) where the latest price is shown. N/A is shown on the first REQUEST, and after the new price has been income, quotes will appear.
To activate the export of quotes from the terminal through DDE, one has to enable the "Enable DDE server" option in the terminal settings.
Attention: History Data cannot be exported through DDE protocol. The current quotes are exported only when the client terminal is online.
DDE request formats and their possible results by the example of "DDE-sample.xls" file:
BID request: = MT4|BID!USDCHF result: 1.5773
ASK request: = MT4|ASK!USDCHF result: 1.5778
HIGH request: = MT4|HIGH!USDCHF result: 1.5801
LOW request: = MT4|LOW!USDCHF result: 1.5741
TIME request: = MT4|TIME!USDCHF result: 21.05.02 9:52
QUOTE request: = MT4|QUOTE!USDCHF result: 21.05.02 9:52 1.5773 1.5778 1.5776
Attention: For data to be shown properly in MS Excel, one has to enable "Tools — Options... — Translation — Translation formula entry" menu option of MS Excel.
Das hilft nicht wirklich weiter, denn über eine Kooperation mit Access steht da nichts...
Microsoft Access unterstützt dynamischem Datenaustausch (DDE) als Zielanwendung (Client) oder eine Quellanwendung (Server).
Siehe Verwenden von Microsoft Access als DDE-Server (https://msdn.microsoft.com/de-de/library/office/ff821067.aspx)