Probleme beim Einloggen
Philipp Klein Verwenden eines ADO recordsets innerhalb der gleichen Arbeitsmappe
Hallo zusammen,
Ich habe folgendes Problem und wäre für Tipps/Hilfen sehr dankbar:
In einem Excel file müssen größere Datenmengen verarbeitet werden und ich möchte daher den Zugriff/Verarbeitung beschleunigen indem ich SQL und ein ADO recordset verwende.
Der Zugriff auf Excel-Tabellen in andere Arbeitsmappen funktioniert problemlos - wenn ich jedoch ein ADO recordset aus einer Tabelle innerhalb der gleichen Arbeitsmappe erzeugen möchte, so öffnet Excel beim Herstellen der Verbindung über den Connection String eine neue Excel-Instanz. (Ein neues Fenster im schreibgeschützten Modus wird geöffnet). Dies geschieht jedoch nicht immer.
Ich habe hierzu mehrere Varianten ausprobiert, u.a. auch die von Herrn Held dazu vorgeschlagene:
https://www.xing.com/communities/posts/zugriff-auf-eigene-excel-mappe-ueber-sql-statement-1002110456
Kann mir vielleicht jemand sagen woran es liegt, dass beim Erzeugen des recordsets eine neue Excel-Instanz aufgerufen wird bzw. wie ich das umgehen kann?
Ich möchte einfach nur ein ADO recordset innerhalb der gleichen (geöffneten) Excel-Instanz verwenden.
Für jeden Hinweis wäre ich sehr dankbar - habe auch schon viel recherchiert, aber nichts dazu gefunden.
Mit den besten Grüßen,
Philipp Klein
Christian Koch Philipp Klein Dominik Petri
+3 weitere Kommentare
Letzter Kommentar:
Philipp Klein
Hallo Herr Koch,
vielen Dank für Ihre Nachricht. Ich habe das Problem mit DAO lösen können auf folgende Weise:
strSQL = "Select * from xyz ..."
strSourcePath = ThisWorkbook.FullName
Set db = OpenDatabase(strSourcePath, False, True, "Excel 12.0;HDR=YES;")
Set rs = db.OpenRecordset(strSQL)
Bei den ADO connection strings hatte ich diverse ausprobiert - das Problem war, dass immer eine neue Excel Instanz erzeugt wurde, ich aber auf die gleiche Instanz zugreifen wollte....
Beste Grüße,
Philipp Klein
Lars Schreiber Überblick über alle Power BI Desktop Updates
Hallo liebe VBA-Experten,
bei der hohen Entwicklungsgeschwindigkeit der Power BI Plattform fällt es teilweise schwer am Ball zu bleiben und den Überblick nicht zu verlieren. Aus diesem Grund habe ich einen Power BI-Report erstellt, welcher die einzelnen Power BI Desktop-Updates auflistet und Links zu den Dokumentationen und, sofern vorhanden, Videos beinhaltet.
Viel Spaß beim Stöbern und viele Grüße aus Hamburg,
Lars
Lars Schreiber SSBI-Newsletter: Datenprüfung mit Power Query, Teil 2 + Writing documentation for custom M-functions, Part 2
Hallo liebe VBA-Experten,
der aktuelle SSBI-Newsletter ist raus. Diesmal gibt es die folgenden zwei Top-Themen:
1) Datenprüfung mit Power Query: Nachdem der letzte Teil dieser Serie gezeigt hat, wie ich die Soll- und die Istdaten aufbereite, zeigt der aktuelle Teil, wie ich Fehler identifiziere und für den Nutzer ausweise. Auf diese Weise können Fehleingaben schnell gefunden und behoben werden.
2) Writing documentation for custom M-functions, Part 2: Dieser Teil zeigt, wie ich die Metadaten meiner custom function auf eine weitere, flexiblere Art beeinflussen kann. Dieser Beitrag bereitet die Grundlage für den dritten und letzten Teil dieser Reihe, in welchem ich zeigen werde, wie auch einzelne Parameter der Funktion mit einer Dokumentation versehen werden können.
Viel Spaß beim Lesen und viele Grüße aus Hamburg,
Lars
Bernd Held Die Frage nach dem Hochkomma
Hallo zusammen,
gerade erreicht mich ein sehr interessante Leser-Anfrage. Ihr kennt ja bestimmt die Möglichkeit eine Zahl als Text in eine Zelle einzugeben, wenn man als erstes Zeichen den Apostrophen erfasst und danach die Zahl schreibt. Exemplarisch in Zelle A1 den Wert '45 eingeben. Die IsNumeric Prüfung sagt dann genau für diese Zelle, dass es sich um einen numerischen Wert handelt. So weit so gut.
Wie aber kann man genau dieses Zeichen auslesen bzw. identifizieren?
Folgende Versuche schlagen alle fehl:
Debug.Print Left(Range("A1").Formula, 1)
Debug.Print Left(Range("A1").Text, 1)
Debug.Print Left(Range("A1").Value, 1)
Debug.Print Range("A1").Characters(1, 1).Text
Alle liefern anstatt dem Apostrophen die Zahl 4.
Mit Hilfe der Eigenschaft PrefixCharacter und kann man jedoch dieses Zeichen erfolgreich auslesen:
Sub NumericPrüfungV2()
With Tabelle1
If .Range("A1").PrefixCharacter = Chr(39) Then
MsgBox "alphanumerisch"
Else
MsgBox "numerisch"
End If
End With
End Sub
Man lernt wohl nie aus,
VG
Bernd
Robert Stiehler
Mit vartype kann man zwar nicht auf das Hochkomma zugreifen, kann aber - im Gegensatz zu IsNumeric - ebenfalls erkennen, ob Zahl oder String...

Moderatoren

Infos zu den Moderatoren

Über die Gruppe "VBA Entwickler-Treff"

  • Gegründet: 12.10.2011
  • Mitglieder: 1.196
  • Sichtbarkeit: offen
  • Beiträge: 548
  • Kommentare: 1.287