Avatar billede mose Nybegynder
16. oktober 2001 - 01:31 Der er 26 kommentarer og
2 løsninger

Create procedure i Access

Kan man lave en Stored Procedure i Access ?
Avatar billede terry Ekspert
16. oktober 2001 - 08:18 #1
Access 2000, yes.
Avatar billede bennytordrup Nybegynder
16. oktober 2001 - 08:19 #2
En stored procedure på samme måde som i SQL Server kan du ikke lave.

Du kan lave gemte forespørgsler og eksekvere dem gennem DAO eller ADO
Avatar billede bennytordrup Nybegynder
16. oktober 2001 - 08:20 #3
Terry> Hvor. Hvis det er i adp-filer, så er det rent faktisk SQL Server, du arbejder i.
16. oktober 2001 - 08:51 #4
Terry har ret! Du kan godt lave Stored Procedures i alm Access 2000.

nedenstående ex laver en stored procedure:

CurrentProject.Connection.Execute \"CREATE PROCEDURE spInsert as INSERT INTO tblVærdier ( EntitetID, Dato ) SELECT 5, Now();\"

Proceduren kan dog ikke ses i database-vinduet, men kan kaldes fra eks. en forespørgsel.

Den vil også fremgå i tabellen MSysObjects.

/Thomas
www.makeiteasy.dk
Avatar billede bennytordrup Nybegynder
16. oktober 2001 - 08:53 #5
Så dybt har jeg åbenbart ikke været i Access 2000 :-(

Men det er stadig ikke så stærke som Stored Procedures på SQL Server..

Lige en biting: Hvis du tager fat gennem ADO prodedures, hvordan ser commandtext så ud?
16. oktober 2001 - 09:08 #6
En exekverbar Stored Procedure kan køres på samme måde som en forespørgsel:
  CurrentProject.Connection.Execute \"spInsert\"

En SP som returnere data kan man bare åbne den som et recordset:

  Dim Rs As ADODB.Recordset
  Set Rs = New ADODB.Recordset
  Rs.Open \"spGetIdentity\", CurrentProject.Connection, adOpenStatic
  MsgBox Rs!ID

/Thomas
Avatar billede mose Nybegynder
16. oktober 2001 - 10:17 #7
thomasjepsen > Når jeg prøver dette får jeg denne fejl:

[Microsoft][ODBC Microsoft Access Driver] Syntax error in CREATE TABLE statement

PS Databasen er af Access 2000 format.
16. oktober 2001 - 10:20 #8
hmm, der er da ingen \"Create Table\"-statements !!!???

Har du husket en reference til \"Microsoft ActiveX Data Object 2.1 Library\"?
Avatar billede mose Nybegynder
16. oktober 2001 - 10:23 #9
Øhhhh... Der stod jeg af ?!?

Jeg kan godt forhøje pointsne lidt hvis du har lidt tid til at forklare lidt nærmere...
16. oktober 2001 - 10:26 #10
det behøvs skam ikke :o)

Når du står i VBA-editoren, går du i menuen Tools->references
I den fremkomne dialigboks skal du sikre dig at ovennævnte reference er krydset af.

/Thomas
Avatar billede terry Ekspert
16. oktober 2001 - 10:27 #11
ADO should be set as default in Access 2000.

mose> Are you working with Access tables or SQL/MSDE? What I am getting at is why do you wantto use a stored procedure?
16. oktober 2001 - 10:29 #12
Terry-> ADO is NOT set by default if the database is convertet from previous versions of Access
Avatar billede terry Ekspert
16. oktober 2001 - 10:29 #13
Correct!
Avatar billede mose Nybegynder
16. oktober 2001 - 10:36 #14
thomasjepsen > Jeps ! - Den var krydset af.

Terry > I\'m working with Access Tables. It\'s a database that is converted from a Compaq Himmalaya Server to an Access Database. I am writing a project on SQL optimization and I thought that stored procedures was an important issue.
16. oktober 2001 - 10:42 #15
Hvordan ser dit \"Create Procedure\"-statement ud? Kan du indsætte det her?
Avatar billede mose Nybegynder
16. oktober 2001 - 10:46 #16
CREATE PROCEDURE spTest AS
SELECT ordnr, ordevtti
FROM ordevent
WHERE event = \'r1cr\' AND task = \'ediimpc\' AND subprod = \'C\' OR event =\'m1cr\' AND task = \'ediimpc\' AND subprod = \'C\' AND ordevtti LIKE (\'2001-07-23\' + \'%\')
Avatar billede terry Ekspert
16. oktober 2001 - 10:49 #17
mose>OK, interesting.
As I said, and Thomas too, STORED PROCEDURES in Access 2000 are possible. They are as far as I can make out intended for use with adp (Access Data Projects) as benny.. states. Adp is for use with SQL Server and MSDE but I ma lead to believe that they can be used with Access (jet) databases too.

Thomas> We were involved in a question a while back concerning Stored procedures, along with proaccess. I cant find this anywhere, do you have a reference to it by chance?
16. oktober 2001 - 10:54 #18
Hov, Mose! Hvorfor får du en ODBC-fejl??? Hvis du benytter ODBC, burde du jo ikke have noget med ODBC at gøre!?
Er du sikker på at tabellerne ikke bare er sammenkædet med din Himmalaya-server?
Avatar billede terry Ekspert
16. oktober 2001 - 10:57 #19
And if thats the case the stored procedures will be placed there.
Avatar billede mose Nybegynder
16. oktober 2001 - 10:58 #20
Thomas > Jeg benytter ODBC til at connecte til databasen. Databasen har jeg liggende lokalt i Access 2000 format, og det går helt uden om Himmalaya\'en.

således:

<%@LANGUAGE=\"JAVASCRIPT\"%>
<!--#include file=\"Connections/Connection.asp\" -->
<%

    var test = Server.CreateObject(\"ADODB.Connection\");
    test.Open = \"ArchiveDB\";
    test.Execute(\"CREATE PROCEDURE spTest AS SELECT ordnr, ordevtti From ORDEVENT WHERE event = \'r1cr\' AND task = \'ediimpc\' AND subprod = \'C\' OR event =\'m1cr\' AND task = \'ediimpc\' AND subprod = \'C\' AND ordevtti LIKE (\'2001-07-23\' + \'%\')\")
    test.Close();
%>
Avatar billede terry Ekspert
16. oktober 2001 - 11:00 #21
So after all this we arent talking ACCESS :o(
I think you will have to create the stored procedures through Access and not ASP or what ever your using.

Avatar billede mose Nybegynder
16. oktober 2001 - 11:06 #22
Terry > I have tried to use this tutorial

http://www.aspemporium.com/aspEmporium/tutorials/StoredProcedures.asp

to create the Stored Procedure. It gave me the exact same error. I\'m not very familiar with Access, and I have searched in the help file for issues regarden Creation fo Stored Procedures, but I found nothing. Therefore I tried to create it throug Active Server Pages.

How can I make a Stored Procedure directly in Access ?
16. oktober 2001 - 11:08 #23
Terry-> Jeg er tilbøjelig til at give dig ret.

mht det tidligere spørgmål med ProAccess ang. Stored Procedures, så kan jeg heller ikke finde det, sorry :o(
16. oktober 2001 - 11:11 #24
I Access laver du en ny procedure i et modul (VBA), hvori du skriver koden (f.eks. den jeg gav dig tidligere).

Herefter kan du køre koden ved at trykke F5 eller ved at kalde proceduren f.eks. fra en hændelsesprocedure (f.eks. en knap) eller fra en makro.

Avatar billede terry Ekspert
16. oktober 2001 - 11:12 #25
Thomas> Med hensyn til hvad? (Jeg er tilbøjelig til at give dig ret.)

Avatar billede terry Ekspert
16. oktober 2001 - 11:19 #26
mose> Well I dont intend to be an ekspert at ASP, but it looks as though you can create SP from ASP, sounds logical!
What I would do though, is use the example EXACTLY as it is before going on to your own SP.
This will eliminate any other errors creaping in and causing confusion to the actual question placed. (Kan man lave en Stored Procedure i Access?)
Yes they can, as the example also states. But as I mention, lets get a simple test working first and then move on from there.
Avatar billede mose Nybegynder
16. oktober 2001 - 11:25 #27
OK!

I think I\'m på rette spor nu.

Thnx til jer both !
Avatar billede terry Ekspert
16. oktober 2001 - 11:28 #28
Tak til you too :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester