stefan: UNION PROBLEM

hallo,
rettet mich vor dem Wahnsinn.
Ich habe eine Datenbankabfrage gemacht, die auf einem PWS lief.
Nachdem ich das Script bei meinem Provider auf den Server gespielt habe, funktionierte es nicht mehr.
Folgende Fehlermeldung:
Microsoft OLE DB Provider for ODBC Drivers- Fehler '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Ein Memo- oder OLE-Objektfeld 'Firmenprofil' kann in einem SELECT-Abschnitt einer Union-Abfrage nicht verwendet werden.

Es sind in beiden Tabellen gleich viele Spalten vorhanden. Deswegen verstehe ich nciht, warum er plötzlich Probleme hat.
Hier das Script:
sql = "SELECT * FROM angebote WHERE (angebote.Region LIKE '%" & strRegion & "%' AND angebote.Stadt LIKE '%" & strStadt & "%' AND angebote.Taetigkeit LIKE '%" & strTaetigkeit & "%') UNION SELECT * FROM erweitert WHERE (erweitert.Region LIKE '%" & strRegion & "%' AND erweitert.Stadt LIKE '%" & strStadt & "%' AND erweitert.Taetigkeit LIKE '%" & strTaetigkeit & "%')"

Über Hilfe freu ich mich natürlich sehr.
Grüße
Stefan

  1. Hallo Stefan,

    rettet mich vor dem Wahnsinn.

    ich glaub, das schafft keiner hier ;)

    Nachdem ich das Script bei meinem Provider auf den Server gespielt habe, funktionierte es nicht mehr.
    Folgende Fehlermeldung:
    Microsoft OLE DB Provider for ODBC Drivers- Fehler '80040e14'

    [Microsoft][ODBC Microsoft Access Driver] Ein Memo- oder OLE-Objektfeld 'Firmenprofil' kann in einem SELECT-Abschnitt einer Union-Abfrage nicht verwendet werden.

    Dann hast du MDAC 2.5 oder niedriger und dein ISP MDAC 2.6 oder höher.
    Seit MDAC 2.6 ist es nicht mehr möglich, in einer UNION-Abfrage
    Memofelder zu selektieren.
    Stelle die Abfrage so um, dass alle Felder ausser dem Memofeld
    selektiert werden. Dann erstellst du eine neue Abfrage, die
    die Ergebnisse der Union-Abfrage und die zugehörigen Memofelder
    der Datensätze selektiert.

    Also in etwa so:

    SELECT unionabfrage.feld1, unionabfrage.feld2, originaltabelle.memofeld FROM unionabfrage, originaltabelle WHERE unionabfrage.id = originaltabelle.id

    HTH, Stefan

    1. hallo auch stefan,
      danke erstmal für Deine Antwort. Ich denke genau das ist das Problem, denn ich verwende Memo-Felder (da soll einer drauf kommen.
      Nur leider hab ich Deinen Tip nicht wirklich verstanden:

      SELECT unionabfrage.feld1, unionabfrage.feld2, originaltabelle.memofeld FROM unionabfrage, originaltabelle WHERE unionabfrage.id = originaltabelle.id

      Könntest Du mir vielleicht anhand meiner SQL Syntax weiter helfen?
      Wäre Dir zu tiefstem Dank verpflichtet.
      sql = "SELECT angebote.Anbieter, angebote.Stadt, angebote.Region, angebote.Taetigkeit, angebote.datum, angebote.abdem, angebote.ab, angebote.nummer, angebote.erweitert FROM angebote WHERE (angebote.Region LIKE '%" & strRegion & "%' AND angebote.Stadt LIKE '%" & strStadt & "%' AND angebote.Taetigkeit LIKE '%" & strTaetigkeit & "%') UNION SELECT erweitert.Anbieter, erweitert.Stadt, erweitert.Region, erweitert.Taetigkeit, erweitert.datum, erweitert.abdem, erweitert.ab, erweitert.nummer, erweitert.erweitert FROM erweitert WHERE (erweitert.Region LIKE '%" & strRegion & "%' AND erweitert.Stadt LIKE '%" & strStadt & "%' AND erweitert.Taetigkeit LIKE '%" & strTaetigkeit & "%')"
      rs.Open sql, connect

      Grüße Stefan

      1. hallo auch stefan,
        danke erstmal für Deine Antwort. Ich denke genau das ist das Problem, denn ich verwende Memo-Felder (da soll einer drauf kommen.
        Nur leider hab ich Deinen Tip nicht wirklich verstanden:

        SELECT unionabfrage.feld1, unionabfrage.feld2, originaltabelle.memofeld FROM unionabfrage, originaltabelle WHERE unionabfrage.id = originaltabelle.id

        Sorry, kleiner Nachtrag. Es sind zwar Memo-Felder in der Datenbank vorhanden, aber bei meiner UNION Abfrage rufe ich nur normale Text-Felder auf.
        Was kann das bedeuten?
        Grüße Stefan