Thema Datum  Von Nutzer Rating
Antwort
22.03.2022 09:10:11 Peter
NotSolved
17.04.2022 19:16:54 Gast29758
NotSolved
Rot Eher ein Datenbank-Thema als ein VBA-Thema
17.04.2022 20:05:04 Gast72843
*****
NotSolved

Ansicht des Beitrags:
Von:
Gast72843
Datum:
17.04.2022 20:05:04
Views:
444
Rating: Antwort:
  Ja
Thema:
Eher ein Datenbank-Thema als ein VBA-Thema

Da ist SQL ganz gut geeignet, erledigt Dir das Schleifen schön und elegant, dazu noch zügig.


 

a) Erstelle eine Arbeitsmappe

b) Bereits bekannte Datensätze stehen in Tabelle1

c) Die in Tabelle1 vermeintlich unbekannten Datensätze stehen in Tabelle2

d) Erstelle ein drittes Arbeitsblatt; werden durch nachfolgendes Beispiel die gesuchten Datensätze reingeschrieben

e) Schreibe folgenden Code in ein allgemeines Modul

f) Speichere die Arbeitsmappe mit dem Datentyp XLSM ab und führe folgenden Code dann aus

 

    Dim sSQL    As String
    Dim rs      As Object
    
    '*** Die Abfrage beider Arbeitsblätter inkl Bedingung
    sSQL = "SELECT Tab2.SpalteA, Tab2.SpalteB FROM `Tabelle2$` as TAB2 left outer join (SELECT * FROM `Tabelle1$`) AS TAB1 ON TAB2.SpalteA = TAB1.SpalteA Where Tab1.SpalteA is null"
    
    '*** Das nötige ADODB.Recordset-Object
    Set rs = CreateObject("ADODB.Recordset")
    
    '*** die Ausführung
    rs.Open sSQL, "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0 Xml"""

    '*** Das Schreiben der Ergebnismenge in Blatt 3
    Worksheets(3).Range("A1").CopyFromRecordset rs
    
    '*** typisches Schließen des Objectes
    rs.Close
    
    '*** Aufräumen
    Set rs = Nothing

 

 

Hinweis:

Über etwige Fehlerquellen und deren Behandlung musste Dich noch kümmern.

 

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
22.03.2022 09:10:11 Peter
NotSolved
17.04.2022 19:16:54 Gast29758
NotSolved
Rot Eher ein Datenbank-Thema als ein VBA-Thema
17.04.2022 20:05:04 Gast72843
*****
NotSolved