men du skal selvfølgelig kalde den med sql og ikke sqlStr når det er den du giver i parameter --- Function Query(sql) rs.Open sql, cn Query = rs End Function --- og tilsvarende så skal den vide hvad "cn" er Med mindre du har defineret "cn" globalt så skal den også med som parameter
Men altså, hvis det var mig så ville jeg erklære rs, cn med mere og benytte en sub til at tildele dem ala --- Dim rs,cn Set rs = //noget create recordset Set cn = //hvad den nu skal være Sub query(sql) rs.open sql,cn End Sub --- så vil du udenfor bare kunne kalde query("Select * From Test1") og så kan du nu direkte bruge rs da den er Dim´et globalt
Ok måske jeg vil gøre det sådan, men kan du se hvorfor det her sker:
Set rs = CreateObject("ADODB.Recordset") Set cn = CreateObject("ADODB.Connection") cn.Open "DRIVER={SQL Server};SERVER=mssql.test.com;DATABASE=test;UID=hem;PWD=hem"
rs = Query("Select * From Test")
Function Query(sqlStr) rs.Open sqlStr, cn Query = rs End Function
Dette får denne fejl: Der opstod en Microsoft VBScript-kørselsfejl (0x800A01C2) Antallet af argumenter er forkert eller egenskabstildelingen er ugyldig: 'rs'
hmm ikke umiddelbart, hvilken linje er fejlen i? Jeg kender ikke så meget til den måde at åbne recordset på desværre Men det kunne også måske tyde på at man så ikke kan lave en funktion returnere et recordset, det kan jeg bare ikke lige forstå hvis man ikke kan, ville jeg mene man kunne
men altså der er da vist ingen grund til at have en funktion Da du har erklæret rs højere oppe så er den jo tilgængelig --- Set rs = CreateObject("ADODB.Recordset") Set cn = CreateObject("ADODB.Connection") cn.Open "DRIVER={SQL Server};SERVER=mssql.test.com;DATABASE=test;UID=hem;PWD=hem"
Query("Select * From Test")
Sub Query(sqlStr) rs.Open sqlStr, cn End Sub ----- Burde være lige så godt og så kan du bruge rs som du vil
ttopholm >> returnere, det må vist slås op i en ordbog ;o) For det der er ikke at returnere en værdi, det er at ændre en værdi. I min verden uden at slå det op i en ordbog så betyder returnere "at komme hjem"/"vende tilbage", på samme måde som ordet "return". Du kan sende børnene i byen og enten kan de komme hjem med vare (returnere en vædi), eller også kan de spise dem undervejs (ikke returnere en værdi), men din pung bliver tom uanset hvad (den globale variabel) :o)
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.