Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

PassThrough via VBA

Begonnen von henfoni, Juli 05, 2011, 11:38:45

⏪ vorheriges - nächstes ⏩

henfoni

Moin,

zunächst vorweg, bin absoluter VBA-Noob. Ich benutze Access 2010 und habe 5 PassThrough Abfragen erstellt (musste wegen Perfomance auf PassThrough ausweichen). Jede Abfrage wird jeweils durch ein Start-und End-Datum eingegrenzt.
Beim PassThrough kann man ja leider keine Parameter übergeben, so dass ich theoretisch immer per Hand die Intervalle ändern müsste.
Deswegen versuch ich das jetzt über VBA Code zu lösen. Am schönsten wäre es, wenn ich einfach eine Funktion mit Start/Enddatum als Parameter aufrufe, die dann automatisch die Abfragen (die dann ja als Funktion, mit Start/Enddatum als Parameter laufen müssten) ausführt. So in der Richtung! Allerdings habe ich kein Plan, wie ich die DB über VBA connecte usw. :/
Sorry, falls ich mich hier umständlich ausdrücke bzw. dass ich kein Plan hab! :D
Danke für Hilfe!

henfoni
Wer nicht fragt, bleibt dumm.

database

Hallo,

PassThrough - Abfragen treten im Allgemeinen immer in Verbindung mit einem SQL-Server in Erscheinung.
Warum verwendst du keine StoredProcedure um das Recordset zu bekommen?
Einer gespeicherten Prozedur könntest du Parameter beim Aufruf mitgeben.

Die Verbindung zum SQL-Server würde hierbei per ADO aufgebaut werden können (sofern dir die Verbindungsparameter bekannt sind).

henfoni

#2
Hi,

also ich hab bisher nur ganz normale Abfragen und Kreuztabellen über die access-Oberfläche erstellt und ab und zu bisschen im SQL-Code rumgebastelt.
Bei dem DB-System handelt es sich um SQL-Server.
Wie erstelle ich eine StoredProcedure?

Auf ADO bin ich beim googeln auch gestoßen, das is ja sozusagen der Standard-Connect zu allen möglichen DB-Systemen, oder? Allerdings weiß ich nicht genau, was ich bei DSN angeben muss (user,pw und Name der ODBC-Verbindung hab ich).
edit: der Name der ODBC-Verbindung ist ja die DSN, lol

Hast du vielleicht ein ganz simples Code-Beispiel, mit dem ich Daten über VBA abrufe und anzeigen lasse. Vielen Dank!
Wer nicht fragt, bleibt dumm.

database

Hi,

ADO ist die bessere Wahl beim Zugriff auf einen MS SQL-Server. ADO stellt eine Zugriffsmethode dar.
DSN kann, muss aber nicht sein.
Der Zugriff auf den Server kann auch per Connection-String hergestellt weden.

Im Moment habe ich leider kein geeignetes Beispiel zur Hand, da mußt du ein wenig Geduld haben.

ZitatWie erstelle ich eine StoredProcedure
Diese wird am SQL-Server erstellt bzw. unter Access bei einem Access Daten Project - also einer ADP-Datei

Beispiel für die Erstellung einer einfachen gespeicherten Prozedur:



create procedure [dbo].[invNachMac]

as

select '12.0' + convert(varchar,inventarnr) as INV
from tblClientDetails d
inner join tblInventar i on i.id = d.client_id
where mac = '00-13-21-04-BF-F8'

return

database

Hallo,

hier findest du einen Link zu einem recht aufschlußreichen Tutorial rund um das Thema ADO und SQL-Server.
Auch der Aufbau einer Verbindung zu einem Access-Backend wird in diesem Dokument beschrieben.

Schau dir das Tutorial eingehend an und versuche dich an den angegebenen Beispielen im Umfeld deiner Datenbankanwendung.
Wenn dabei Fragen auftauchen - rein damit ins Forum  ;)

Der Link zum ADO-Kurs: http://www.activevb.de/tutorials/tut_adokurs/adokurs.html

und für die Verbindungen zu unterschiedlichsten Datenbanksystemen: http://www.connectionstrings.com/