Office: DB-Abfrage kann nicht sofort verarbeitet werden?!

Helfe beim Thema DB-Abfrage kann nicht sofort verarbeitet werden?! in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Forumgemeinde, Ich rufe Daten aus einer DB per Makro ab und möchte einen Teil dieser Daten direkt per Funktion trennen (Trennzeichen: "-").... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von raitsch, 22. November 2007.

  1. raitsch Erfahrener User

    DB-Abfrage kann nicht sofort verarbeitet werden?!


    Hallo Forumgemeinde,

    Ich rufe Daten aus einer DB per Makro ab und möchte einen Teil dieser Daten direkt per Funktion trennen (Trennzeichen: "-").
    Das Problem ist nun, dass die Daten zwar schon abgerufen sind, aber nicht nicht in Excel "stehen" wenn die 'Trennen'-Funktion eingreifen will; d.h. es kommt die Fehlermeldung: "Es wurden keine Daten zur Analyse markiert."

    Mit 2 Makros wäre es leicht realisierbar, aber ich möchte die Abfrage und Weiterverarbeitung gerne auf nur einem Button liegen haben.

    Mein bisheriger Code:
    Code:
    Sub Makro1()
    
        With ActiveSheet.QueryTables.Add( ... )
    
            .Name = "..."
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .PreserveColumnInfo = True
            .Refresh BackgroundQuery = False
            
                Sheets("Ausfüllen").Select
                Range("A1").Select
                
    
    
        End With
    
            Application.DisplayAlerts = False
        
            Sheets("Daten").Select
            Range("J8").Select
            
            Selection.TextToColumns Destination:=Range("J2"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
            Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
            :="-", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
        
        Sheets("Ausfüllen").Select
        
    End Sub
    
    
    
    
    Hab unwichtige Sachen raus genommen!

    Für ein wenig Hilfe wär ich sehr dankbar!

    Gruß
     
  2. schatzi Super-Moderator
    Hallo!
    Warum packst du die beiden Codes dann nicht zusammen in einen?
     
  3. raitsch Erfahrener User
    Hi!

    erstmal danke für die schnelle Antwort. Was ich evtl noch sagen sollte: ich bin ein ziemlicher vb anfänger.

    Also ich weiß nicht, wie ich die beides Sachen (Abfrage u. Trennen) so anlegen kann, dass es nicht zu dieser Fehlermeldung kommt.
    Im Prinzip müsste es ja so gehen: Abfrage läuft, daten werden in excel geschrieben, ende der funktion (with) und dann läuft das trennen mit 'selection....' usw.

    edit: die funktionEN sind ja in einem marko... schau bitte noch mal auf den Code

    gruß,
    raitsch
     
  4. schatzi Super-Moderator

    DB-Abfrage kann nicht sofort verarbeitet werden?!

    Hallo!

    Ich kann's hier natürlich leider nicht testen, aber der zwischenzeitliche Wechsel auf das Blatt "Ausfüllen" macht erstmal keinen Sinn, oder?
    Was passiert denn, wenn du den raus lässt?
    Code:
    Sub Makro1()
    
        With ActiveSheet.QueryTables.Add( ... )
    
            .Name = "..."
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .PreserveColumnInfo = True
            .Refresh BackgroundQuery = False
        End With
    
            Application.DisplayAlerts = False
              
            Range("J8").TextToColumns Destination:=Range("J2"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
            Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
            :="-", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
       
        Sheets("Ausfüllen").Select
       
    End Sub 
    Bezieht sich deine Abfrage nur auf J8?
     
  5. raitsch Erfahrener User
    Der zwischenzeitliche Wechsel ist Schwachsinnig. Diesen hatte ich nur mal zu Testzwecken reingebaut.

    Bei Deinem Code ist im Prinzip ja nichts anders als bei meinem - also es funktioniert genauso wenig. Ich glaube es ist einfach ein Denkfehler; werden die Daten vielleicht erst beim "End Sub" nach Excel 'übergeben'?!

    edit: Also es werden mehr Daten abgefragt, aber für das Trennen ist nur J8 wichtig! ;-)
     
  6. schatzi Super-Moderator
    Ich kenne mich mit Datenbankabfragen nicht wirklich aus, aber wenn du recht hast und die Daten erst nach "End Sub" übergeben werden, dann trenn doch einfach die Codes und lasse sie dann gemeinsam aus einem weiteren Makro abrufen:
    Code:
    Sub Makro1()
        'Hier die Daten einlesen
    End Sub
    
    Sub Makro2()
        'Hier "Text in Spalten"
    End Sub
    
    Sub Makro3()
        Call Makro1
        Call Makro2
    End Sub
     
  7. raitsch Erfahrener User
    so ähnlich habe ich das gerade eben auch versucht (mit nem call on makro 1 (abfrage) auf makro 2 (trennen).

    Das Problem ist, dass in Excel noch drin steht "bla bla empfange daten" und dann schon wieder das makro2 laufen will... mit einer wait funktion ging das ganze auch nicht. Ich glaub da ist immer noch ein Denkfehler drin. Der Ansatz mit verschiedenen Makros ist gut aber der führt die dann ja glaube ich auch direkt nacheinander aus, ohne das marko1 schon daten in excel abspeichern konnte.

    ein lösungsansatz wäre noch eine IF-anweisung zur überprüfung ob die zelle einen inhalt hat, und darauf dann das trennen-makro auszuführen. ich glaub das wird aber auch nichts.. die werden einfach nicht komplett nacheinander ausgeführt.

    edit: wenn ich jetzt MARKO3 (der springt ja dann weiter die einzelnen makros durch) komplett in einzelschritten durchgehe, dann funkrionierts DB-Abfrage kann nicht sofort verarbeitet werden?! :( evtl doch noch mal einen wait in marko2 setzten ...


    edi2: also das sind jetzt meine makros:

    Makro1
    Code:
    Sub Makro1()
    
        Sheets("Daten").Select
        Range("A7:AO55").Select
        Selection.ClearContents
        Selection.QueryTable.Delete
        Range("A7").Select
        
        With ActiveSheet.QueryTables.Add(x)
            .Name = "x"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .PreserveColumnInfo = True
            .Refresh BackgroundQuery = False
    
        End With
    End Sub
    makro2:
    Code:
    Sub Makro2()
    
    
        Application.DisplayAlerts = False
        
     Sheets("Daten").Select
     
        Range("J8").TextToColumns Destination:=Range("J2"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="-", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
        
    Sheets("Ausfüllen").Select
    
    
    End Sub
    Makro3:
    Code:
    Sub Makro3()
    
        Call Makro1
        Call Makro2
    
    End Sub
    
     
  8. schatzi Super-Moderator

    DB-Abfrage kann nicht sofort verarbeitet werden?!

    DB-Abfrage kann nicht sofort verarbeitet werden?! [​IMG] Ich habe dir eine PN geschickt.
     
  9. raitsch Erfahrener User
    Hab den Fehler gefunden... man man man... die einfachten Sachen sind doch die, auf die man nie kommt...

    Der .BackgroundQuery musste auf FALSE und der .Refresh BackgroundQuery auf TRUE stehen...

    Gruß,
    raitsch
     
Thema:

DB-Abfrage kann nicht sofort verarbeitet werden?!

Die Seite wird geladen...
  1. DB-Abfrage kann nicht sofort verarbeitet werden?! - Similar Threads - Abfrage verarbeitet

  2. Abfrage: Anzahl von Kriterium >0

    in Microsoft Access Hilfe
    Abfrage: Anzahl von Kriterium >0: Hallo, [ATTACH] Ich versuche gerade, die Anzahl der belegten Plätze auf einem LKW per Abfrage zu ermitteln. Dabei wäre dann FSPal > 0. Leider zeigt er mir die Anzahl der Plätze an. [ATTACH]...
  3. Teil des Zellinhaltes abfragen in VBA

    in Microsoft Excel Hilfe
    Teil des Zellinhaltes abfragen in VBA: Guten Tag, ich möchte in Zelle E1 den linken 4-stelligen Teil in Zelle A3 abfragen. Habs versucht mit IF (LEFT(R[2]C[-3],4) = "8396") then ... Else ... End If Wer kann...
  4. Verliert irgendwann die Selektive Abfrage von UFO

    in Microsoft Access Hilfe
    Verliert irgendwann die Selektive Abfrage von UFO: Guten Tag Ich habe ein HF mit darin befindlichem UF. Die Abfrage der Teilnehmer im Uf bezieht sich immer auf den Kurs-Typ im HF Solang ich das Formular neu erstelle, funktioniert das...
  5. automatische Abfrage URL via Artikelnummer

    in Microsoft Access Hilfe
    automatische Abfrage URL via Artikelnummer: Guten Tag Bei der Aktualisierung der Homepage und aufgrund eines Plugin-Wechsels des Üebersetzungstools hat wordpress alle Permalinks der Produkte verändert. Unserem Webmaster war nicht bekannt,...
  6. Vorkommen von Kunden in mehreren Tabellen per Abfrage filtern

    in Microsoft Access Hilfe
    Vorkommen von Kunden in mehreren Tabellen per Abfrage filtern: Hallo Community, ich habe folgendes Problem beim Nutzen einer Access-Datenbank. Zunächst die Datenstruktur: [ATTACH] Dies sind die Tabellen meiner Datenbank. In der Tabelle "Adressliste"...
  7. mit String aus Formular Übereinstimmung in Abfrage prüfen

    in Microsoft Access Hilfe
    mit String aus Formular Übereinstimmung in Abfrage prüfen: Hallo liebe Mitglieder Ich verzweifle wieder einmal fast und wende mich an Euch. Ich möchte gern aus einem Formular heraus (Click) prüfen, ob übereinstimmende Datensätze in einer Abfrage vorhanden...
  8. RowSource aus Abfrage mit Kriterien

    in Microsoft Access Hilfe
    RowSource aus Abfrage mit Kriterien: Hallo, ich bin dabei eine Bundesliga-Datenbank zu erstellen, in der es auch eine Menge Statistiken geben soll. Ich will z.B. in einem Listenfeld die Namen der Schiedsrichter und deren Einsätze...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden