Home Office-Hilfe.com - Wir lösen Ihr Problem mit Microsoft Excel, Word, Outlook, PowerPoint, Access gratis Forum Impressum

 [Excel 2003] DB-Abfrage kann nicht sofort verarbeitet werden?!
Neues Thema eröffnenNeue Antwort erstellen
Autor Nachricht
raitsch
Newbie
Newbie


Anmeldedatum: 09.01.2007
Beiträge: 16

BeitragVerfasst am: 22.11.2007, 13:45 Nach oben

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ß
Benutzer-Profile anzeigenPrivate Nachricht senden
schatzi
Moderator
Moderator


Anmeldedatum: 09.12.2006
Beiträge: 5729

BeitragVerfasst am: 22.11.2007, 13:51 Nach oben

Hallo!
Zitat:
Mit 2 Makros wäre es leicht realisierbar

Warum packst du die beiden Codes dann nicht zusammen in einen?

_________________

Viele Grüße vom Schatzi

------------------------
Ich bin nur noch sporadisch erreichbar!
Bitte hofft nicht auf eine schnelle Beantwortung einer Rückfrage meinerseits!
Jeder andere Helfer darf Rückfragen gerne übernehmen und hilft sicher gerne weiter!
Benutzer-Profile anzeigenPrivate Nachricht senden
raitsch
Newbie
Newbie


Anmeldedatum: 09.01.2007
Beiträge: 16

BeitragVerfasst am: 22.11.2007, 14:21 Nach oben

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
Benutzer-Profile anzeigenPrivate Nachricht senden
schatzi
Moderator
Moderator


Anmeldedatum: 09.12.2006
Beiträge: 5729

BeitragVerfasst am: 22.11.2007, 14:34 Nach oben

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?

_________________

Viele Grüße vom Schatzi

------------------------
Ich bin nur noch sporadisch erreichbar!
Bitte hofft nicht auf eine schnelle Beantwortung einer Rückfrage meinerseits!
Jeder andere Helfer darf Rückfragen gerne übernehmen und hilft sicher gerne weiter!
Benutzer-Profile anzeigenPrivate Nachricht senden
raitsch
Newbie
Newbie


Anmeldedatum: 09.01.2007
Beiträge: 16

BeitragVerfasst am: 22.11.2007, 14:49 Nach oben

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! Wink
Benutzer-Profile anzeigenPrivate Nachricht senden
schatzi
Moderator
Moderator


Anmeldedatum: 09.12.2006
Beiträge: 5729

BeitragVerfasst am: 22.11.2007, 14:57 Nach oben

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

_________________

Viele Grüße vom Schatzi

------------------------
Ich bin nur noch sporadisch erreichbar!
Bitte hofft nicht auf eine schnelle Beantwortung einer Rückfrage meinerseits!
Jeder andere Helfer darf Rückfragen gerne übernehmen und hilft sicher gerne weiter!
Benutzer-Profile anzeigenPrivate Nachricht senden
raitsch
Newbie
Newbie


Anmeldedatum: 09.01.2007
Beiträge: 16

BeitragVerfasst am: 22.11.2007, 15:10 Nach oben

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 :( 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
Benutzer-Profile anzeigenPrivate Nachricht senden
schatzi
Moderator
Moderator


Anmeldedatum: 09.12.2006
Beiträge: 5729

BeitragVerfasst am: 22.11.2007, 15:53 Nach oben

Image Ich habe dir eine PN geschickt.

_________________

Viele Grüße vom Schatzi

------------------------
Ich bin nur noch sporadisch erreichbar!
Bitte hofft nicht auf eine schnelle Beantwortung einer Rückfrage meinerseits!
Jeder andere Helfer darf Rückfragen gerne übernehmen und hilft sicher gerne weiter!
Benutzer-Profile anzeigenPrivate Nachricht senden
raitsch
Newbie
Newbie


Anmeldedatum: 09.01.2007
Beiträge: 16

BeitragVerfasst am: 23.11.2007, 09:55 Nach oben

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
Benutzer-Profile anzeigenPrivate Nachricht senden
Beiträge der letzten Zeit anzeigen:      
Neues Thema eröffnenNeue Antwort erstellen


Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge Office nicht für den aktuellen Benutz... metze21 Sonstiges 0 01.12.2008, 18:40 Letzten Beitrag anzeigen
Keine neuen Beiträge Eingehende Mails nicht mehr im html-F... jasonsebi Microsoft Outlook Hilfe 1 01.12.2008, 07:51 Letzten Beitrag anzeigen
Keine neuen Beiträge Weiß nicht weiter! Hab Probleme! steried Sonstiges 1 30.11.2008, 21:57 Letzten Beitrag anzeigen
Keine neuen Beiträge Weiß nicht weiter! Hab Probleme! steried Sonstiges 0 30.11.2008, 21:56 Letzten Beitrag anzeigen
Keine neuen Beiträge Vista, rtfhtml.dll datei fehlt, outlo... Peter Marchert Microsoft Outlook Hilfe 5 30.11.2008, 19:43 Letzten Beitrag anzeigen


 Gehe zu:   



Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen

Haftungsausschluss/Disclaimer


SMS kostenlos versenden | Battle-Dream | Tuning Forum | Join the YoungGeneration | krankenversicherungsvergleich | Kalorienarme Rezepte!
Versicherungsvergleich | Bürobedarf | Papier | Betten

Ranking-Hits



Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Alle Zeiten sind GMT + 1 Stunde
Deutsche Übersetzung von phpBB.de