Hallo zusammen,
ich möchte einen bestimmten Datensatz der mit einer ID ausgestattet ist ins Excel exportieren.
Die ID hab ich als SUWID benannt.
Mit diesem Code exportiert dieser alle ID (SuWID´s) ins Excel.
Ich möchte aber nur eine bestimmte.
DoCmd.OutputTo acOutputForm, "Abfrage_zusammen-Unterformular1", acFormatXLS, "Export.xls", True,
Wie kann ich das am besten lösen?
Hallo
Da du schon eine Abfrage nutzt, dann lege in der Abfrage die ID als Kriterium fest
Wie meinst du das?
Hallo
In der Abfrage kannst du ein Kriterium festlegen, was alle Datensätze anzeige die dieses Kriterium erfüllt.
Ah okay,
ne sorry so meine ich das nicht.
Ich habe immer ein bestimmtes Formular offen welches eine bestimmte ID hat.
Von diesem Formular (was alle Informationen über den Vertrag hat) möchte ich das Excel starten.
Die Abfrage die du im Quellcode sehen kannst, zieht nur noch Daten aus dem SAP, vom Zahllaufplan und von einem Garantiesystem zusammen.
Hallo,
Du sprichst in Rätseln...
DoCmd.OutputTo acOutputForm, "Abfrage_zusammen-Unterformular1", acFormatXLS, "Export.xls", True,
exportiert die Datensätze, die im Formular "Abfrage_zusammen-Unterformular1" angezeigt werden, wenn dieses Formular für sich allein geöffnet wird...
Also ich möchte schon diese Abfrage aufrufen.
Also die Abfrage_zusammen-Unterformular_1
Die Abfrage umfasst circa 2000 Verträge. Pro Vertrag gibt es immer pro ID ungefähr 6-7 Informationen.
Bsp.
ID SAP Jahr
1 2€ 2009
1 3€ 2010
1 10€ 2011
1 5€ 2012
1 20€ 2013
1 100€ 2014
2 5€ 2009
2 10€ 2010
usw.
also pro ID gibt es immer unterschiedlich viele Jahre und unterschiedlich viele Werte aus SAP, bzw. noch aus Geris und aus dem Zahllaufplan. (wollte jetzt nicht alles in die Tabelle schreiben)
Die Verträge kann man auch anschauen, also die Verträge werden in einem Formular angelegt. Durch das Anlegen erhalten sie ja erst die ID. Durch die Eingabe einer SAP Nummer in diesem Formular werden Werte direkt aus der SAP Tabelle dann in die Abfrage geschrieben.
Nun wenn ich in diesem Formular bin möchte ich einfach auf einen Button drücken und eine Excel Datei öffnet sich mit diesem bestimmten Vertrag.
also hab ich versucht
DoCmd.Output to acoutputform, "Abfrage_zusammen-Unterformular", acFormatXLS, "Export.xls", True,
Nun bringt er mir halt immer alle ID´s. Ist ja klar.
Darum meine Frage wie kann ich den Code verbessern damit er nur die eine ID bringt. Also irgendwie
Hast du es verstanden was ich meine? (bin voll schlecht im erklären )
Hallo,
mhmm.....
Wenn Du aus der besagten Abfrage nur die Datensätze mit z. B. dem ID-Wert 1 nach Excel exportieren willst, dann könnte das prinzipell in etwa so aussehen:
Generiere zunächst eine weitere Anfrage ("abf_Excel_Export") auf Basis irgendeiner Tabelle und speichere die. Welche Du nimmst, ist hier egal (z.B: Select * from Tabelle1)
Sodann:
Dim strSQL as String, strKrit as String
strSQL= Replace(Currentdb.Querydefs("Abfrage_zusammen-Unterformular_1").SQL,";"," ")
strKrit = "Where ID=1" ' wobei hier die "1" sinnvollerweise aus irgendeinem Textfeld kommen könnte.
Currentdb.Querydefs("abf_Excel_Export").SQL = strSQL & strKrit
DoCmd.OutputTo acOutputQuery, "abf_Excel_Export", acFormatXLS, "Export.xls", True
Ich habs jetzt heute Nacht schon hinbekommen.
Hab es ein wenig anderst gelöst.
Könntest du mir vielleicht sagen, wenn ich in eine Abfrage rein schreibt
Betrag: Nz(Betrag;0) das Format immer weggeht. Also ich kann nicht mehr Währung auswählen.
Kann man das irgendwie umgehen?
Hallo,
und wozu braucht Du das "Format" in der Abfrage?
Betrag: CCur(Nz(Betrag;0))
weil ich die Abfrage direkt ins Excel spiel und dann sonst immer die Fehlermeldung kommt, das das Format nicht erkannt wurde.
Klappt super!
Dankeschön