Probleme de variable VB dans un requetes SQL HHHHHHEEEEELLLLLLLLLLPPPPPPPP

cs_andrea Messages postés 7 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 14 février 2002 - 5 févr. 2002 à 23:12
cs_ulysse Messages postés 4 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 25 mars 2002 - 6 févr. 2002 à 11:23
Dans le code suivant j'ai un petit probleme pour passer une variable dans une requete sql afin d'inserer le valeur de cette variable dans une base de donnee acces.

lorsque ma requete est sous cette forme

sql = "INSERT INTO Table_Computer (Computer_Name) VALUES ('" & strComputerName & "');"
cnnADO.Execute (sql)

l'erreur suivante se produit:
erreur de syntaxe dans la chaine d'expression "GASTON' (oui gaston c le nom de mon ordi)

mais quand je remplace strComputerName par le label lblComputerName ca marche mais il y a alors tout ce qui se trouve dans le label...
Est -il don cpossible d'utiliser directement la variable ou bien faut il passer par le label ou une txtbox???

MERCI pour votre aide
je vous donne tout le code dont je me sers.

'OS version
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128 ' Maintenance string for PSS usage
End Type

'os version
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long

'computer name
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long

'user name
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Dim cnnADO As New ADODB.Connection ' Pour la connection à la base de données

Dim cmdADO As New ADODB.Command ' Pour la commande à la base de données

Dim rsADO As New ADODB.Recordset
Dim sql As String

Private Sub Form_Load()

'OS version
Dim OS As OSVERSIONINFO

OS.dwOSVersionInfoSize = Len(OS) ' set the size of the structure
retval = GetVersionEx(OS) ' read Windows's version information
If OS.dwMajorVersion 4 And OS.dwMinorVersion 0 Then
lblOsVersion = "Windows NT version " & OS.dwMajorVersion & "." & OS.dwMinorVersion
ElseIf OS.dwMajorVersion = 4 And OS.dwMinorVersion > 0 Then
lblOsVersion = " Windows Millenium version " & OS.dwMajorVersion & "." & OS.dwMinorVersion ElseIf OS.dwMajorVersion 5 And OS.dwMinorVersion 0 Then
lblOsVersion = "Windows 2000 version " & OS.dwMajorVersion & "." & OS.dwMinorVersion ElseIf OS.dwMajorVersion 5 And OS.dwMinorVersion 1 Then
lblOsVersion = "Windows XP version " & OS.dwMajorVersion & "." & OS.dwMinorVersion
End If


'computer name

Dim strComputerName As String

strComputerName = String(100, Chr$(0))
GetComputerName strComputerName, 100
lblComputerName = "Computer Name: " & strComputerName

'username

Dim strUserName As String

strUserName = String(100, Chr$(0))
GetUserName strUserName, 100
lblUserName = "User Name: " & strUserName

'IP & Hostname
Dim IP As String
Dim HOST As String

IP = Winsock1.LocalIP
HOST = Winsock1.LocalHostName
lblIP = "IP Address: " & IP
lblHost = "Hostname: " & HOST

'Connection BD

cnnADO.Provider = "Microsoft.jet.OLEDB.4.0"

' Chemin de la Base de Données - ici le répertoire de l'application

cnnADO.ConnectionString = "test.mdb"

' Ouverture de la Base de Données

cnnADO.Open

sql = "INSERT INTO Table_Computer (Computer_Name) VALUES ('" & lblComputerName & "');"
cnnADO.Execute (sql)

End Sub
A voir également:

1 réponse

cs_ulysse Messages postés 4 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 25 mars 2002
6 févr. 2002 à 11:23
salut

Il est possible d'utiliser la variable

Verifie bien que ta variable strcomputer_name ne contient pas déjà de " ou de ' (ajouter la ligne de commande debug.print <nom de la variable> et afficher la fenêtre execution)

J'utilise fréquemment des variables pour mes requêtes SQL et je procède comme suis
sql = "insert into test (champ1) values ('" + cstr(<nomvar>)+"')"
0
Rejoignez-nous