Announcement

Collapse
No announcement yet.

Zugriff von VBA auf Access

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Hallo,

    Ich habe mal weiter an meinem VBA Modul gebastelt.
    Und bin auch schon so weit, das ich die erhaltenen Results in eine neue Tabelle schreibe. Allerdings kommt bei diesem Vorgang im VBA Modul immer der Hinweis:
    "Sie beabsichtigen eine Zeile hinzuzufügen".

    Mein Aufruf sieht wie folgt aus:
    Code:
    strSQL3 = "INSERT INTO Tabelle2 (Feld1) VALUES ('" & artikel & "'); "
    DoCmd.RunSQL strSQL3
    Gibt es eine Möglichkeit diesen Hinweis zu unterbinden.

    Danke

    gruss
    mojito

    Comment


    • #17
      Hallo mojito,

      tu Dir selbst einen großen Gefallen und gewöhn Dir nicht die "pfui-bäh" Befehle von VBA wie rs!Feld und DoCmd. an; damit handelt man sich auf dauer nur Probleme ein. Siehe Thread
      http://entwickler-forum.de/showthread.php?t=43849

      Der Befehl lautet
      DoCmd.SetWarnings False

      Besser aber Du nimmst

      CurrentDB.Execute strSQL3


      Olaf
      Olaf Helper

      <Blog> <Xing>
      * cogito ergo sum * errare humanum est * quote erat demonstrandum *
      Wenn ich denke, ist das ein Fehler und das beweise ich täglich

      Comment


      • #18
        Hallo Olaf,
        Habe nun für die Abfragen CurrentDB.Execute strSQL3 verwendet.
        Du hast geschrieben das rs!Feld auch unschön wäre, welche Alternative habe ich denn dafür?

        Danke

        gruss
        mojito

        Comment


        • #19
          Hatte ich schon mal geschrieben, über die Fields-Auflistung

          var = rs.Fields("FeldName")

          Hintergrund ist einfach, das es solche Sachen in "richtigen" Programmiersprachen / Entwicklungsumgebungen nicht gibt.
          Wenn Du die sehr Access/VBA spezifischen Sachen verwendest, wird es Dir später schwerer fallen, Dich auf z.B. .NET umzustellen; Deine Software bekommst Du schon gar nicht migriert.

          COM Objekte, wie ADO, hast Du auch in anderen Windows Programmiersprachen, selbst in .NET; wenn auch es dort schon das neuere ADO.NET gibt.

          Olaf
          Olaf Helper

          <Blog> <Xing>
          * cogito ergo sum * errare humanum est * quote erat demonstrandum *
          Wenn ich denke, ist das ein Fehler und das beweise ich täglich

          Comment


          • #20
            Oh danke, sorry hatte ich verpeilt, das du das schon geschrieben hattest.

            Comment


            • #21
              Hallo,

              ich schon wieder, habe da nochmal eine Frage und zwar lasse ich mir ja die Datensätze mit folgendem SQL Befehl anzeigen
              Code:
              SELECT TOP 5 DST.ART_NR,DST.BEZEICHNG, COUNT(DST.ME) AS GesMenge
              FROM Tabelle1 AS Src 
                        INNER JOIN
                        Tabelle1 AS DST 
                               ON SRC.RNR = DST.RNR
              WHERE SRC.ART_NR = '20300'
                          AND DST.ART_NR <> '20300' 
              GROUP BY DST.ART_NR,DST.BEZEICHNG
              ORDER BY COUNT(DST.ME) DESC;
              Dennoch bekomme ich bei manchen Datensätzen mehr wie 5 Ausgaben.

              z.B.

              Art_NR | BEZEICHNG | GesMenge
              13578 | a | 14
              18657 | b | 12
              10954 | c | 11
              15454 | d | 11
              18777 | e | 10
              23001 | f | 10

              Woran kann das liegen?

              Danke

              gruss
              mojito

              Comment


              • #22
                Hallo mojito,

                das ist so eine Eigenheit von Access, von denen es noch mehr gibt.

                Eigentlich hast Du eine TOP 5 Auswahl bekommen, nämlich die Artikel mit der TOP 5 Gesamtmenge 14, 12, 11, 10 und eigentlich müsste da noch ein Datensatz sein.
                Zu diesen TOP 5 Mengen hast Du alle Artikel bekommen, die es gibt, da Access nicht entscheiden konnte / wollte, welche es weg lassen soll, hat es alle zurück geliefert.

                Ergänz Deine Sortierung noch weiter, damit Access ein Kriterium hat, z.B. nach Artikelnummer, dann sollte es gehen.

                ORDER BY COUNT(DST.ME) DESC, DST.ART_NR

                Olaf
                Olaf Helper

                <Blog> <Xing>
                * cogito ergo sum * errare humanum est * quote erat demonstrandum *
                Wenn ich denke, ist das ein Fehler und das beweise ich täglich

                Comment

                Working...
                X