Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Kann gespeicherte Prozdur nicht aufrufen aus Access?
zurück: MSSQL: Zwei Tabellen verbinden weiter: Über Netzwerk auf SQL-Datenbank zugreifen 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
florenziger
Im Profil kannst Du frei den Rang ändern


Verfasst am:
17. Okt 2013, 14:13
Rufname:

Kann gespeicherte Prozdur nicht aufrufen aus Access? - Kann gespeicherte Prozdur nicht aufrufen aus Access?

Nach oben
       Version: Office 2013

florenziger am 14. Okt 2013 um 18:30 hat folgendes geschrieben:
Hallo, ist schon lange her mit den Gespeicherte Prozeduren bei mir.

Fehlt mir irgendwo noch eine Grundlegende Globale Einstellung für die Server Connection?

Warum ist zum Beispiel mein Icon "Gespeicherte Prozedur" im Menüband deaktiviert?

Alternativ habe ich eine Gespeicherte Prozedur auf dem MS SQL 2008 r2 Server erstellt. (Ich habe das eigentlich so wie beim letzten mal 2009 bei einem SQL2005 Server gemacht. Das war damals ein ADP Projekt, aber das gibt es ja nicht mehr?)
Code:
USE [myDatabase]
GO
/****** Object:  StoredProcedure [dbo].[SP_Anrede]    Script Date: 10/14/2013 19:14:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[SP_Anrede]
AS
BEGIN
   -- SET NOCOUNT ON added to prevent extra result sets from
   -- interfering with SELECT statements.
   SET NOCOUNT ON;

    -- Insert statements for procedure here
   SELECT * FROM Anrede
END
Dann habe ich den Tabellenverknüpfungsmanager ausgeführt. ODBC
Dann habe ich neu die Tabellen verknüpft. ODBC. Dabei sah ich die Gespeicherte Prozedur nicht! (Früher war das doch so, oder?)

Mein VBA Aufruf wäre dann dieser:

Code:
    Me.RecordSource = "EXEC [dbo].[SP_Anrede]"
und bekomme dann einen
Zitat:
3129 Fehler Select, Update ... erwartet
Was mache ich den Falsch? Was fehlt in meinem Projekt evtl.

Danke schon mal

Achim

So, heute kam mein MS SQL Server Buch und ich konnte es lösen.
Macht spass wenn man weiß wie Smile

Das Stored Procedure Icon ist zwar in Access immer noch inaktiv, aber die kann man ja schön im Server anlegen.

Hier die Lösung, vielleicht hilft es ja mal jemanden Smile
Code:
Enum eADOOpenType
    eOpenad_OpenForwardOnly = 0   
    eOpenad_OpenKeyset = 1       
    eOpenad_OpenDynamic = 2
    eOpenad_OpenStatic = 3       
End Enum

Private Sub Form_Open(Cancel As Integer)
    Dim rs As ADODB.Recordset, sSql As String, i As Integer
   
    sSql = "EXEC dbo.SP_Anrede"
    Set rs = OpenRS_ADO(sSql, eOpen_adOpenDynamic)
    'MsgBox rs.RecordCount
    'Formular mit Daten Füllen
    Set Me.Recordset = rs
    rs.Close
    Set rs = Nothing
End Sub

Public Function OpenRS_ADO(sSql As String, OpenType As eADOOpenType) As ADODB.Recordset
    Dim dbcon As ADODB.Connection, rs As ADODB.Recordset

    Set dbcon = New ADODB.Connection
    'ConnectionString via .udl Datei erzeugen. Stichwort Datenlinkdatei
    dbcon.ConnectionString = "Provider=SQLNCLI10.1;Integrated Security=SSPI;Persist Security Info=False; Initial Catalog=MeineDB;Data Source=lp-02\sqlexpress"
    dbcon.Open
    Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient
    rs.Open sSQL, dbcon, OpenType
    Set OpenRS_ADO = rs
End Function
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
23. Okt 2013, 18:58
Rufname:


AW: Kann gespeicherte Prozdur nicht aufrufen aus Access? - AW: Kann gespeicherte Prozdur nicht aufrufen aus Access?

Nach oben
       Version: Office 2013

Hallo,

ich weiß nicht, wie es bei A2013 mit Stored Procedures ist, aber Fakt ist, daß es ADPs leider nur bis A2010 gibt - und nur bei ADPs kannst Du SPs direkt als RecordSource mit einem EXEC-Kommando angeben, da nur in ADPs ein Formular immer auf ADO basiert (und Du damit mit T-SQL und nicht mit Access SQL arbeitest).

In verlinkten Datenbanken hast Du immer Jet/ACE dazwischen und SPs können nur mit Tricks verlinkt werden (zumindest bis A2010), durch manuelles Editieren des Connection Strings.

Per ADO zuweisen ist schon OK, allerdings ist es so nicht editierbar, ebenso könntest Du eine Pass-Through-Query verwenden, die ist auch nur Read Only. Um eine editierbare SP verwenden zu können, mußt Du leider auf den OLEDB-Treiber zurückgreifen, mit SQLNCLI geht es nicht (jedenfalls, wie gesagt, bis A2010).

Die Enum ist überflüssig, diese existiert schon in der ADO Dll, Du kannst hier also einfach "OpenType As CursorTypeEnum" statt "OpenType As eADOOpenType" verwenden und die Enum löschen (entsprechend den Rest natürlich anpassen).

Darüber hinaus solltest Du unter keinen Umständen "SELECT *" in einer SP oder View verwenden. SQL Server merkt sich die Spalten in der Tabelle zu dem Zeitpunkt, wenn Du die SP/View erstellst und wenn Du später die Tabelle änderst, stimmen die gemerkten Spalten nicht mehr mit den tatsächlichen überein. Am besten vergißt Du die Existenz des Sterns, der macht überall nur Probleme. Immer die konkrete Liste aller Spalten angeben.

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: .mdb Gespeicherte Prozedur 5 GastNeu 564 05. Okt 2012, 17:14
Bitsqueezer .mdb Gespeicherte Prozedur
Keine neuen Beiträge Microsoft Access und MS SQL Server: SQL 2005 Prozedur Parameter aufrufen Excel 2007 1 sophia0000 1556 18. März 2011, 00:09
joseeger SQL 2005 Prozedur Parameter aufrufen Excel 2007
Keine neuen Beiträge Microsoft Access und MS SQL Server: Server Prozedur über Access aufrufen ?? 2 MichaelB. 1241 03. Jan 2011, 09:02
Bitsqueezer Server Prozedur über Access aufrufen ??
Keine neuen Beiträge Microsoft Access und MS SQL Server: Export in Excel mit dts in vba aufrufen 3 rahan 1552 06. Okt 2010, 16:10
Bitsqueezer Export in Excel mit dts in vba aufrufen
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten. Microsoft Access und MS SQL Server: Parameter-Übergabe an gespeicherte Prozedur 1 Cornelius Kirchenpauer 4172 08. Jul 2009, 16:38
Bitsqueezer Parameter-Übergabe an gespeicherte Prozedur
Keine neuen Beiträge Microsoft Access und MS SQL Server: Stored procedures in Access 2003 aufrufen ?! 0 wolsei 4838 23. Sep 2007, 18:16
wolsei Stored procedures in Access 2003 aufrufen ?!
Keine neuen Beiträge Microsoft Access und MS SQL Server: TIPP: Gespeicherte Prozeduren starten Jobs (Modul) 1 Robsl 2434 21. Mai 2007, 14:24
Willi Wipp TIPP: Gespeicherte Prozeduren starten Jobs (Modul)
Keine neuen Beiträge Microsoft Access und MS SQL Server: Lokale Pakete aufrufen 0 boerns 611 02. Jun 2006, 10:30
boerns Lokale Pakete aufrufen
Keine neuen Beiträge Microsoft Access und MS SQL Server: Gesp. Prozedur mit Param. aus Formular per VB aufrufen 1 Schmidti 7000 09. Mai 2006, 16:35
Tobias_G Gesp. Prozedur mit Param. aus Formular per VB aufrufen
Keine neuen Beiträge Microsoft Access und MS SQL Server: Gespeicherte Funktionen 0 Gast 1166 12. Aug 2005, 13:44
Gast Gespeicherte Funktionen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Macromedia Dreamweaver