Avatar billede milandt Nybegynder
14. september 2005 - 12:21 Der er 4 kommentarer og
1 løsning

Parametres i query

Hej. Jeg har en query med navnet "getMemberById" der ser sådan ud:

PARAMETERS [@Id] Long;
SELECT M.*
FROM Members AS M
WHERE M.MemberId=[@Id];

Når jeg køre denne query i Access kommer der en prompt der spørger efter @Id, og det er også fint..

Nu vil jeg gerne kunne angive @Id fra en anden query, eller fx fra en sql statement i mit asp script.

Hvis jeg f.eks opretter en anden query i Access der ser sådan ud:

SELECT M.*
FROM getMemberById M
WHERE M.@Id = 12904364

så får jeg følgende fejl: The specified field 'M.@Id' could refer to more than one table listed in the FROM clause of your SQL statement.

Prøver jeg sådan her:

SELECT M.*
FROM getMemberById M
WHERE @Id = 12904364

får jeg denne fejl: Wrong datatype for parameter '@Id'.

Prøver jeg helt at fjerne PARAMETERS linien fra den første query, og så kører den anden query igen, får jeg blot en prompt for hvad @Id skal være, ligesom hvis jeg bare kørte den første query som den er. Det er som om WHERE @Id = 12904364 bliver ignoreret.

Jeg tror det er temmelig tydeligt hvad jeg prøver at opnå, hvordan kan dette skrues sammen så jeg kan have en parameter i en query og kalde denne query fra f.eks asp eller en anden query og her have værdien for min paramter ??

Mvh
Dennis
Avatar billede terry Ekspert
14. september 2005 - 13:17 #1
If you are using ADO then you need to look at the parameters collection of the Command object

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdcolparameters.asp
Avatar billede capaj Nybegynder
14. september 2005 - 13:19 #3
Hej Milandt,

jeg mener at en Access Query med Parameters som du har, skal betragtes i stil med stored procedure. Dvs. hvis du skal hente data i f.eks. ASP skal du f.eks. definere et command object og parse din parameter via denne. Giver det mening?

/CAPAJ
Avatar billede milandt Nybegynder
14. september 2005 - 13:51 #4
Jeg vil gerne have et eksempel på hvordan jeg i f.eks asp eller i en anden query bruger en query med en parameter.
Avatar billede capaj Nybegynder
14. september 2005 - 15:45 #5
Eksempel:
antager et view "Q1" eksisterer der har 1 parameter:

Sub Test()
    Dim conn As New ADODB.Connection
    Dim aff As Integer
    Dim Param As Integer
    Dim resultSet As ADODB.Recordset
   
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\dbx.mdb;User Id=admin;Password=;"
Dim Cmd As New ADODB.Command
Cmd.CommandType = adCmdStoredProc
Cmd.ActiveConnection = conn
Cmd.CommandText = "Q1"
'sæt paramter til 1
Param = 1
Set resultSet = Cmd.Execute(aff, Param)

resultSet.Close
Set resultSet = Nothing

conn.Close
Set conn = Nothing

End Sub
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