Zum Inhalt springen

Datenherkunft eines Berichts als SQL-Statement


Empfohlene Beiträge

Geschrieben

Hallo Leute!

Ich hab folgendes Problem. Ich muss ein SQL-Statement mit VBA zusammenbauen, da es flexibel bleiben muss. Wenn ich auf einen Button klicke, dann geht ein Bericht auf. In diesem Bericht ist im Code hinterlegt, dass die Datenherkunft eine Variable ist in der SQL steht, also:

Me.RecordSource = strSQLBericht

Jetzt hab ich nur folgendes Problem. Das SQL-Statement geht über 11(!!!) Tabellen mit JOIN und so...Jetzt ist das SQL Statement über 2000 Zeichen lang. Und wenn jetzt der Bericht geöffnet ist kommt eine Fehlermeldung in der Codezeile, dass die Eigenschaft RecordSource zu lang ist.

Hat von euch schonmal jemand so ein Problem gehabt und kann mir weiterhelfen???

Gruß Sonic83

Geschrieben

Hi,

wie waere es denn damit, dass du vorher eine view erstellst, die der sqlAbfrage entspricht (inetwa) und dann ueber die view den statement laesst?

Nur ein Vorschlag... spart das was du hasst und die performance...

Gruesse

Denise

Geschrieben

Was verstehst du unter einem View??? Ist das für dich eine Abfrage???

Ich muss leider das SQL-Statement per VBA zusammensetzen, weil die Tabellennamen variable sind.

Geschrieben

sag mir doch bitte fuer welche Datenbank es sein soll?

Eine View ist eine Ansicht (wie man es auch uebersetzt) und die wird folgendermassen angelegt:

CREATE OR REPLACE VIEW "shema"."tabellenname" (

"TOPICID","BASENAME","DISPLAYNAME","ANSIDISPLAYNAME","SORTNAME",

"SEARCHNAME","EXISTENCESTARTDATE","EXISTENCEENDDATE",

"RESOURCEID","RESOURCETITLE","ORIGINALRESOURCEID",

"RESOURCETYPEID","RESOURCECONTENTSSHORT",

"OCCURRENCEROLETOPICID") AS

SELECT t.TopicId, t.BaseName, t.DisplayName,

t.ANSIDisplayName, t.SortName,

t.SearchName, t.ExistenceStartDate, t.ExistenceEndDate,

rt.ResourceId,

rt.ResourceTitle, rt.OriginalResourceId,

rt.ResourceTypeId, rt.ResourceContentsShort,

100 occurrenceroletopicid

FROM Topic t,

Occurrence o,

ResourceTable rt

WHERE

o.ResourceId=rt.ResourceId AND

o.TopicId=t.TopicId AND

(o.SortNo=1 OR o.OccurrenceRoleId=5000002)

(ist nur ein Beispiel...die namen muessen natuerlich angepasst werden)

Das ist unter oracle... duerfte aber unter anderen nicht viel unterschiede geben.

Dann brauchst du nur die view abzufragen, anstatt ueber 11Tables zu gehen.

Gruesse

Denise

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...