![]() |
|
|||||||
| Newsgroup microsoft.public.de.access Forum microsoft.public.de.access |
![]() |
|
|
Themen-Optionen | Ansicht |
|
#1
|
|||
|
|||
|
Hallo!
Ich habe Olivers Query-Assistent in meine Acc07-DB eingebuat und dort funktioniert der Export nach Excel nicht, weil ein ganz seltsames Verhalten auftritt und ich weder eine Erklärung dafür habe, noch den Fehler finde. Wenn ich en QA nach Acc07 konvertiere funktioniert er. Ich speichere eine Abfrae ab, deren SQL-String z.B. 343 Zeichen lang ist. Diese Abfrage mit irgendeinem Namen kann man bestens nach Excel exportieren. Ich habe die tbls und beide frms samt Code in meine DB importiert und dort bricht der Export mit Fehlermeldungen ab. Für die, die diesen QA nicht kennen: Es wird eine tmp Query gebildet aus dem SQL-String, der in einer tbl in einem MEMO-Feld gespeichert wird, abgerufen wird der String aus einer Spalte eines Listenfeldes: Function tmpqry() Dim db As Database, qrydef As QueryDef Set db = CurrentDb() Set qrydef = db.CreateQueryDef(Me![ListeBenutzerabfragen].Column(1), Me![ListeBenutzerabfragen].Column(2)) End Function Me![ListeBenutzerabfragen].Column(1) ist der Name der qry, z.B. "test" Me![ListeBenutzerabfragen].Column(2) ist der SQL-String, z.b: SELECT .... Wenn ich mir die beiden Felder im Abfrage-Generator der Datenherkunft des Listenfeldes ansehe, ist der SQL-String richtig in der Länge, z.B. 343 Zeichen lang, bei der Ausführung der o.a. Function bricht er nach 255 Zeichen ab!! D.h. ein Debug.Print Me![ListeBenutzerabfragen].Column(2) bringt nur 255 Zeichen!! Eine SQL < 255 Zeichen hingegen funktioniert ohne Probleme! Bei der Original-MDB wird der gesamte gespeicherte String ausgeführt, daher funktioniert der Export. Ich habe den Code jedoch 1:1 übernommen. Hat jemand eine Idee, was da schief läuft?? Anm.: in der Zwischenzeit habe ich es anders gelöst, aber interessante wäre es schon, woran das liegen kann. Workaround: Function tmpqry() Dim db As Database, qrydef As QueryDef Dim strSQL As String strSQL = DLookup("SQLString", "tbl_StoredQuerys", " [ID]= " & Me![ListeBenutzerabfragen]) Set db = CurrentDb() Set qrydef = db.CreateQueryDef(Me![ListeBenutzerabfragen].Column(1), strSQL) End Function Danke Michael Acc07 SP2, Viste HE SP2 |
|
|
||||
|
||||
|
|
|
#2
|
|||
|
|||
|
Michael Alexander wrote:
> > Ich habe Olivers Query-Assistent in meine Acc07-DB eingebuat und dort > funktioniert der Export nach Excel nicht, weil ein ganz seltsames > Verhalten auftritt und ich weder eine Erklärung dafür habe, noch den > Fehler finde. > Wenn ich en QA nach Acc07 konvertiere funktioniert er. > > Ich speichere eine Abfrae ab, deren SQL-String z.B. 343 Zeichen lang > ist. > Diese Abfrage mit irgendeinem Namen kann man bestens nach Excel > exportieren. > Ich habe die tbls und beide frms samt Code in meine DB importiert und > dort bricht der Export mit Fehlermeldungen ab. > Für die, die diesen QA nicht kennen: > > Es wird eine tmp Query gebildet aus dem SQL-String, der in einer tbl > in einem MEMO-Feld gespeichert wird, abgerufen wird der String aus > einer Spalte eines Listenfeldes: > Function tmpqry() > Dim db As Database, qrydef As QueryDef > Set db = CurrentDb() > Set qrydef = db.CreateQueryDef(Me![ListeBenutzerabfragen].Column(1), > Me![ListeBenutzerabfragen].Column(2)) > End Function > > Me![ListeBenutzerabfragen].Column(1) ist der Name der qry, z.B. "test" > Me![ListeBenutzerabfragen].Column(2) ist der SQL-String, z.b: SELECT > .... > Wenn ich mir die beiden Felder im Abfrage-Generator der Datenherkunft > des Listenfeldes ansehe, ist der SQL-String richtig in der Länge, > z.B. 343 Zeichen lang, bei der Ausführung der o.a. Function bricht er > nach 255 Zeichen ab!! > > D.h. ein Debug.Print Me![ListeBenutzerabfragen].Column(2) bringt nur > 255 Zeichen!! > > Eine SQL < 255 Zeichen hingegen funktioniert ohne Probleme! > > Bei der Original-MDB wird der gesamte gespeicherte String ausgeführt, > daher funktioniert der Export. Ich habe den Code jedoch 1:1 > übernommen. > Hat jemand eine Idee, was da schief läuft?? > ... Bist du sicher, dass es in älteren Versionen mit mehr als 255 Zeichen funktioniert? Listenfelder können in allen Access-Versionen maximal 255 Zeichen pro Spalte enthalten. Das ist also eine ewige Grenze. Oder geht es da auch irgendwie um den Export nach Excel? Den Punkt habe ich nicht ganz verstanden. Bei Exporten nach Excel kann das Verhalten bezüglich des Abschneidens von Memos in versch. Access-Versionen durchaus unterschiedlich sein. -- Servus Karl ********* Ich beantworte keine Access-Fragen per Email. ********* Access-FAQ: http://www.donkarl.com |
|
#3
|
|||
|
|||
|
Hallo Karl!
Sorry, habe mich verklick und auch direkt an dich genantwortet.. Hier nochmals in der NG... "Karl Donaubauer" <NoSpam*donkarl.com> schrieb im Newsbeitrag news:7lj8nvF3egh7fU1*mid.individual.net... > Michael Alexander wrote: >> >> Ich habe Olivers Query-Assistent in meine Acc07-DB eingebuat und dort >> funktioniert der Export nach Excel nicht, weil ein ganz seltsames >> Verhalten auftritt und ich weder eine Erklärung dafür habe, noch den >> Fehler finde. >> Wenn ich en QA nach Acc07 konvertiere funktioniert er. >> >> Ich speichere eine Abfrae ab, deren SQL-String z.B. 343 Zeichen lang >> ist. >> Diese Abfrage mit irgendeinem Namen kann man bestens nach Excel >> exportieren. >> Ich habe die tbls und beide frms samt Code in meine DB importiert und >> dort bricht der Export mit Fehlermeldungen ab. >> Für die, die diesen QA nicht kennen: >> >> Es wird eine tmp Query gebildet aus dem SQL-String, der in einer tbl >> in einem MEMO-Feld gespeichert wird, abgerufen wird der String aus >> einer Spalte eines Listenfeldes: >> Function tmpqry() >> Dim db As Database, qrydef As QueryDef >> Set db = CurrentDb() >> Set qrydef = db.CreateQueryDef(Me![ListeBenutzerabfragen].Column(1), >> Me![ListeBenutzerabfragen].Column(2)) >> End Function >> >> Me![ListeBenutzerabfragen].Column(1) ist der Name der qry, z.B. "test" >> Me![ListeBenutzerabfragen].Column(2) ist der SQL-String, z.b: SELECT >> .... >> Wenn ich mir die beiden Felder im Abfrage-Generator der Datenherkunft >> des Listenfeldes ansehe, ist der SQL-String richtig in der Länge, >> z.B. 343 Zeichen lang, bei der Ausführung der o.a. Function bricht er >> nach 255 Zeichen ab!! >> >> D.h. ein Debug.Print Me![ListeBenutzerabfragen].Column(2) bringt nur >> 255 Zeichen!! >> >> Eine SQL < 255 Zeichen hingegen funktioniert ohne Probleme! >> >> Bei der Original-MDB wird der gesamte gespeicherte String ausgeführt, >> daher funktioniert der Export. Ich habe den Code jedoch 1:1 >> übernommen. >> Hat jemand eine Idee, was da schief läuft?? >> ... > > Bist du sicher, dass es in älteren Versionen mit mehr als 255 Zeichen > funktioniert? Listenfelder können in allen Access-Versionen maximal > 255 Zeichen pro Spalte enthalten. Das ist also eine ewige Grenze. > > Oder geht es da auch irgendwie um den Export nach Excel? > Den Punkt habe ich nicht ganz verstanden. Bei Exporten nach Excel > kann das Verhalten bezüglich des Abschneidens von Memos in > versch. Access-Versionen durchaus unterschiedlich sein. > Ja, letztendlich geht es um den Export nach Excel, aber die SQL, die "beschnitten" wurde, stellt nur den Datenherkunft der qry dar, die zum Export benützt wird. im Original lautete die Zeile so: DoCmd.OutputTo acOutputQuery, Me!ListeBenutzerabfragen.Column(1), acFormatXLS, Anwendungspfad & Me!ListeBenutzerabfragen.Column(1) & "_" & Date & ".xls", True Ich habe nun eine tmpqry angelegt, weise der immer nur mit strSQL = DLookup("SQLString", "tbl_StoredQuerys", " [ID]= " & Me![ListeBenutzerabfragen]) CurrentDb.QueryDefs("tmpqry").SQL = strSQL eine neue SQL zu und verwende die tmpqry als "fixe" Abfrage für den Export. DoCmd.OutputTo acOutputQuery, "tmpqry", acFormatXLS, Anwendungspfad & Me!ListeBenutzerabfragen.Column(1) & "_" & Date & ".xls", True So geht es nun. Was mich eben interessiert hätte ist, warum es unter Acc07 mit der original-DB von Oliver funktionierte und bei meiner DB - wie gesagt, alle Objekte wurden 1:1 imporiert - wurde der String irgendwodurch beschnitten. Michael > -- > Servus > Karl > ********* Ich beantworte keine Access-Fragen per Email. ********* > Access-FAQ: http://www.donkarl.com > |
|
|
|
|
![]() |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Erstellt von | Forum | Antworten | Letzter Beitrag |
| Query mit "@id between minid and maxid" schneller machen | Christian Stüben | Newsgroup microsoft.public.de.german.entwickler.dotnet.datenbank | 7 | 10-19-2009 10:38 AM |
| keine Netzwerkverbindungen mehr nach Assistent "Internetadresse einrichten", SBS2008 | Andreas Volkert | Newsgroup microsoft.public.de.windows.server.sbs | 13 | 08-17-2009 11:28 AM |
| Entfernen des Add-ons "Microsoft .NET Framework Assistent 1.0" | Sascha Grage | Newsgroup de.comm.software.mozilla.browser | 53 | 05-03-2009 04:48 AM |
| Assistent "Verbindung mit dem Internet" = Fehler | Lutz Rahe | Newsgroup microsoft.public.de.german.backoffice.smallbiz | 2 | 03-19-2008 11:01 PM |
| Assistent für "Verbindung mit dem Internet" = Fehler | Lutz Rahe | Newsgroup microsoft.public.de.windows.server.sbs | 11 | 03-19-2008 11:00 PM |