Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Cursor mit von Access übergebener Variablen
zurück: Datum und Zeit aus Datumsfeld isolieren weiter: #gelöscht-Anzeige bei chinesischen Zeichen im Primary Key Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
MrMojoRisin
Access VBA - SQL Programmierer


Verfasst am:
30. Jul 2013, 13:23
Rufname:

Cursor mit von Access übergebener Variablen - Cursor mit von Access übergebener Variablen

Nach oben
       Version: Office 2010

Hi,

ich ändere in Access über Buttons die Datensatzherkunft, um die Auswahl der Datensätze bzw. die Sortierung in einem Endlosformular zu ändern. Dazu bastel ich den SQL String über verschiedene Parameter in Access vba zusammen.

Jetzt muss ich aber durch eine neue Anforderung diesen SQL String an den SQL Server übergeben und dort einen Cursor durchlaufen.

Da es ca. 30 Möglichkeiten gibt, würde ich gerne folgendes machen:
- Übergabe des Strings an eine SQL gespeicherte Prozedur
Code:
DECLARE csCursor CURSOR
   FOR

   @vbaString
      
   OPEN csCursor
   FETCH NEXT FROM csCursorINTO @ID
   
   WHILE (@@Fetch_Status = 0)
   BEGIN
      --Code
      FETCH NEXT FROM csCursorINTO @ID
   END
CLOSE csCursor
DEALLOCATE csCursor
Cursor Funktion ist egal, um was es mir geht, ich möchte statt oben "SELECT ID FROM...." einfach, dass er die Variablen mit dem String aus vba nimmt. Wenn das nicht geht, hab ich ziemlich viel Arbeit und so wäre es schicker und übersichtlicher.

Danke schonmal.

MrMojo
redround
Entwickler und ext. Datenschutzbeauftragter


Verfasst am:
30. Jul 2013, 15:05
Rufname:


AW: Cursor mit von Access übergebener Variablen - AW: Cursor mit von Access übergebener Variablen

Nach oben
       Version: Office 2010

Du kannst auch auf dem SQL-Server dynamisch einen SQL-String nach Deinen Bedürfnissen zusammenbauen und den dann mit EXEC() ausführen.

Code:

   declare @sql varchar(2000);
   
   set @sql = '';
   set @sql = @sql + 'Select * ';
   set @sql = @sql + 'From DeineTabelle';

   execute (@sql);

_________________
wenn Euch die Umsetzung der Lösung zu mühseelig ist, findet sich hier im Forum per PN bestimmt auch jemand, der das für einen geringen Obulus macht Smile
MrMojoRisin
Access VBA - SQL Programmierer


Verfasst am:
30. Jul 2013, 16:14
Rufname:

AW: Cursor mit von Access übergebener Variablen - AW: Cursor mit von Access übergebener Variablen

Nach oben
       Version: Office 2010

Klappt so leider nicht oder ich mach was falsch Smile
Probiere es so:
Code:
DECLARE csCursor CURSOR
   FOR

   Execute(@sql)
     
   OPEN csCursor
   ...
Er meckert "Falsche Syntax in der Nähe von @sql"
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
01. Aug 2013, 12:29
Rufname:

AW: Cursor mit von Access übergebener Variablen - AW: Cursor mit von Access übergebener Variablen

Nach oben
       Version: Office 2010

Hallo,

hier wären zwei Möglichkeiten, wie man mit einem Cursor auch mit EXEC bzw. mit Dynamic SQL arbeiten kann:

CURSOR as OUTPUT of the Stored Procedure
Using a cursor with dynamic SQL in a stored procedure

Generell würde ich versuchen, beides zu vermeiden. In sehr vielen Fällen wird ein CURSOR eingesetzt, weil man eine prozedurale "Denke" hat, die eine Liste von Datensätzen wie ein Recordset durchgehen soll. Meistens kann man aber einfach einen (oder mehrere) passende SQL-Befehle schreiben, die etwa eine Änderung aufgrund von Parametern "in einem Rutsch" möglich macht.
Auch Dynamic SQL läßt sich oft vermeiden, auch wenn das manchmal bedeutet, mehrere ähnlich SQL-Befehle zu schreiben.

Gruß

Christian
MrMojoRisin
Access VBA - SQL Programmierer


Verfasst am:
01. Aug 2013, 15:05
Rufname:

AW: Cursor mit von Access übergebener Variablen - AW: Cursor mit von Access übergebener Variablen

Nach oben
       Version: Office 2010

Vielen Dank an die Helfer. Ich habe es jetzt so gelöst. Funktioniert einwandfrei.
Code:
EXEC('DECLARE csCursor CURSOR FOR ' + @strSQL)
      
      OPEN csCursor
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
01. Aug 2013, 16:43
Rufname:


AW: Cursor mit von Access übergebener Variablen - AW: Cursor mit von Access übergebener Variablen

Nach oben
       Version: Office 2010

Hallo,

Du solltest allerdings auch testen, ob diese Lösung multiuserfähig ist.

Gruß

Christian
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Microsoft Access und MS SQL Server: MSSQL 2005 Query mit Variablen 3 biestieboy 1367 01. Dez 2009, 15:53
Bitsqueezer MSSQL 2005 Query mit Variablen
Keine neuen Beiträge Microsoft Access und MS SQL Server: MSSQL 2005 - Datenbankbackup mit einem variablen Dateinamen 1 schmitty 2106 18. Apr 2009, 18:33
mpdd MSSQL 2005 - Datenbankbackup mit einem variablen Dateinamen
Keine neuen Beiträge Microsoft Access und MS SQL Server: SQL Anfrage mit Variablen Where Argumenten 1 madoc 2179 20. Jan 2009, 13:27
Z.Mart SQL Anfrage mit Variablen Where Argumenten
Keine neuen Beiträge Microsoft Access und MS SQL Server: Zugriff auf Cursor bei Multi-User Access/MS SQL DB?! 0 henning007 2953 17. Jul 2008, 15:28
henning007 Zugriff auf Cursor bei Multi-User Access/MS SQL DB?!
Keine neuen Beiträge Microsoft Access und MS SQL Server: Variablen innerhalb von Create (MS SQL-Server, Version 2000) 3 fly_singapore 6532 13. Nov 2007, 14:02
Gast Variablen innerhalb von Create (MS SQL-Server, Version 2000)
Keine neuen Beiträge Microsoft Access und MS SQL Server: Variablen Übergabe 1 mkaker 1025 27. Apr 2006, 09:16
MarcoDresden Variablen Übergabe
Keine neuen Beiträge Microsoft Access und MS SQL Server: MSSQL 2000: Exel DTS Packet und Variablen 0 AzAron 1297 11. Feb 2005, 15:20
AzAron MSSQL 2000: Exel DTS Packet und Variablen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Excel Tipps