<code> Hej! Vad får du för Felmedelande: Är det ett SQL fel eller något annat?<br> Har för mig att det nästan är lag på att man skall skriva ut förkortninga. Det har i alla fall varit uppe tidigare.Com objekt. Trycka in ett visst antal mellanslag. [LÖST]
Public Sub GetUser(sConn As String, sAccountNumber As Variant, sUserId As Variant, sPassWord As Variant)
Set oConn = New ADODB.Connection
Set oCmd = New ADODB.Command
oConn.Open sConn
Dim bBlanks As String
bBlanks = 10 - Len(sAccountNumber)
With oCmd
.ActiveConnection = sConn
.CommandText = "Sp_GetUserInformation"
.CommandType = adCmdStoredProc
.Parameters.Append .CreateParameter("@AccountNumber", adVarChar, adParamInput, 10, sAccountNumber)
.Parameters.Append .CreateParameter("@UserId", adVarChar, adParamInput, 10, sUserId)
.Parameters.Append .CreateParameter("@PassWord", adVarChar, adParamInput, 50, sPassWord)
.Parameters.Append .CreateParameter("@FixAccountNumber", adVarChar, adParamInput, 10, Space(bBlanks) & sAccountNumber)
Set oRs = oCmd.Execute
End With
End Sub
</code>
Som ni ser på sista parameter så vill jag ha in ett visst antal mellansteg (beroende på att databasdesignen är kass)... funkar alldeles utmärkt i en Windows Scripting Component .. men när jag skall göra ett com i helt i VB så vill den inte... har felsökt allt annat (ASP, SQL) och kollat värden som skicka in och ut... och det är det sista som det är fel på... någon som har någon ide???Sv: Com objekt. Trycka in ett visst antal mellanslag.
Du har dimensionerat bBlanks som String, enligt din kod verkar det som du egentligen vill lagra ANTAL mellanrum som behövs där, alltså Int eller Long istället...
Testa nå't i den här stilen istället för bBlanks:
<code>
sAccountNumber = Space(10-Len(sAccountNumber)) & sAccountNumber
</code>
// QezSv: Com objekt. Trycka in ett visst antal mellanslag.
<br>
Du kan testa;
<code>
Public Sub GetUser(ByVal sConn As String, ByVal sAccountNumber As Variant, ByVal sUserId As Variant, ByVal sPassWord As Variant)
Set oConn = New ADODB.Connection
Set oCmd = New ADODB.Command
oConn.Open sConn
With oCmd
.ActiveConnection = sConn
.CommandType = adCmdStoredProc
.CommandText = "Sp_GetUserInformation"
.Parameters.Append .CreateParameter("@AccountNumber", adVarChar, adParamInput, 10, sAccountNumber)
.Parameters.Append .CreateParameter("@UserId", adVarChar, adParamInput, 10, sUserId)
.Parameters.Append .CreateParameter("@PassWord", adVarChar, adParamInput, 50, sPassWord)
.Parameters.Append .CreateParameter("@FixAccountNumber", adVarChar, adParamInput, 10, Right$(Space(10) & sAccountNumber))
Set oRs = oCmd.Execute
End With
End Sub
</code>Sv: Com objekt. Trycka in ett visst antal mellanslag.
Vad betyder SBS?