Sv: Parameterfråga i sql?
Om du skall vara ordentlig i access deklarerar du parametrarna först och spara frågan.
CreateUser;
PARAMETERS [@Name] Text ( 255 ), [@Password] Text ( 255 ), [@EMail] Text ( 255 ); INSERT INTO Users ( UserName, UserPassword, UserEMail ) VALUES ([@Name], [@Password], [@EMail]);
Detta ger du dig oxå möjlighete att använda samma parametrar på flera ställen i frågan.
För att anropa frågan med parametrar i VB använder du command objektet:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Public Sub CreateUser(Conn As ADODB.Connection, Name As String , Password As String , EMail As String ) Dim cmd As ADODB.Command Set cmd = New ADODB.Command Set cmd.ActiveConnection = Conn cmd.CommandText = "CreateUser" cmd.CommandType = adCmdStoredProc cmd.Parameters.Append cmd.CreateParameter( "@Name" , adVarChar, adParamInput, 20, Name) cmd.Parameters.Append cmd.CreateParameter( "@Password" , adVarChar, adParamInput, 20, Password) cmd.Parameters.Append cmd.CreateParameter( "@EMail" , adVarChar, adParamInput, 50, EMail) cmd.Execute , , adExecuteNoRecords End Sub |
Om du inte har stöd för parametrar i databasen kan du använda OLEDB's stöd:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Public Sub CreateUser(Conn As ADODB.Connection, Name As String , Password As String , EMail As String ) Dim cmd As ADODB.Command Set cmd = New ADODB.Command Set cmd.ActiveConnection = Conn cmd.CommandText = "INSERT INTO Users (UserName, UserPassword, UserEMail)" & vbCrLf & _ "VALUES (?, ?, ?)" cmd.Parameters.Append cmd.CreateParameter( "@Name" , adVarChar, adParamInput, 20, Name) cmd.Parameters.Append cmd.CreateParameter( "@Password" , adVarChar, adParamInput, 20, Password) cmd.Parameters.Append cmd.CreateParameter( "@EMail" , adVarChar, adParamInput, 50, EMail) cmd.Execute , , adExecuteNoRecords End Sub |
Svara
Sv:Parameterfråga i sql?
hm.. okey, tack!
Vill kunna anråpa en fråga eller tabell från Access via AutoCAD med hjälp av dbconnect?
vet ej om detta är rätt typ av forum jag skriver i med värt ett försök
/mvh Peke
Svara