Vraag : Hulp met het roepen van SQL Opgeslagen Procedure van Toegang

Hallo is allen, dit mijn eerste poging tot het roepen van een SQL opgeslagen procedure van Toegang tot waarschijnlijk het doen van werkelijk stom iets.  Sloeg het proberen om te bestuderen hoe te te roepen procedures op en het krijgen van tegenstrijdige informatie zodat is dit best ik kon komen omhoog met:

Schemerige db als/> Schemerige sqlExpr Database
Schemerige rs String

db = CurrentDb ()
sqlExpr = „getWastePrice van de PROCEDURE „“ & Vormen! [het frmOutgoing]! [ShipDate]. Value & „“, „& HazWasteID
Geplaatste MsgBox (sqlExpr)
rs = (sqlExpr, dbOpenSnapshot, dbSQLPassThrough)

The foutenmelding db.OpenRecordset ik krijg is „de fout van de Syntaxis in de clausule "

Now van de PARAMETER ik daar MsgBox in heb opgenomen zodat kan ik zien wat de sqlExprwaarde is en het as

PROCEDURE getWastePrice „02/02/2010“ terugkomt, is 118

Which wat ik zou verwachten.  Zo wat verkeerd is met mijn syntaxis?

Open aan andere, betere manieren om opgeslagen procedures met parameters te roepen die values.

Thanks.
terugkeren

Antwoord : Hulp met het roepen van SQL Opgeslagen Procedure van Toegang

Goed, als u de code hieronder in een nieuwe module kleeft en dan u kunt roepen het bij zal.
Bijvoorbeeld gebruikend:

   Schemerige qdf als DAO.QueryDef
   Schemerige rst als DAO.Recordset
   Schemerige strSQL als Koord

   strSQL = „getWastePrice EXEC „“ & Vormen! [het frmOutgoing]! [ShipDate]. Waarde & „“, „& HazWasteID
   Reeks qdf = fCreatePassThrough (Ware "", strSQL, „YourDBName“, „YourServerName“,)
   Reeks rst = qdf.OpenRecordset
   
   Debug.Print rst (0) 'doen wat u aan hier nodig hebt

   rst. Sluit
   Plaats rst = niets
   Plaats qdf = niets

Zie of die merkenbetekenis aan u.

Juicht toe.

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
Functie fCreatePassThrough (strName als Koord, strSQL als Koord, strDBname als Koord, _
                        strServer als Koord, Facultatieve blnIntegratedSecurity zoals Van Boole, _
                        Facultatieve strUserName als Koord, Facultatieve strPassword als Koord, _
                        Facultatieve blnReturnsRecords zoals Van Boole = Ware, Facultatieve strDriver als Koord = „{SQL Server}“) als DAO.QueryDef
    
    Schemerige db als Gegevensbestand
    Schemerige qdf als QueryDef
    Schemerige strConnect als Koord
    
    strConnect = „ODBC; Driver=“ & strDriver &“; Server= " & strServer & „; Database=“ & strDBname
    Als blnIntegratedSecurity toen
        strConnect = strConnect & „; Trusted_Connection=Yes“
    Anders
        Als Len (strUserName) > 0 en Len (strPassword) > 0 toen
            strConnect = strConnect & „; UID=“ & strUserName &“; PWD= " & strPassword
        Eind als
    Eind als
    
    Vastgesteld db = CurrentDb
    Reeks qdf = db.CreateQueryDef (strName)

    Met qdf
        .ReturnsRecords = blnReturnsRecords
        . Verbind = strConnect
        .sql = strSQL
        .ODBCTimeout = 60
    Eind met
    Reeks fCreatePassThrough = qdf
    
    Reeks qdf = niets
    Vastgesteld db = niets
    
De Functie van het eind
Andere oplossingen  
 
programming4us programming4us