Problème lors d'un insert into

Signaler
Messages postés
8
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
28 août 2008
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Bonjour,

J'ai le message suivant qui s'affiche: <You entered an expression that has an invalid reference to the property Page.>
Visiblement il prend mon attribut PAGE pour un integer alors qu'il est déclaré comme Text dans la base.....


Private Sub Command12_Click()
Dim rs1 As ADODB.Recordset
Dim rs1bis As ADODB.Recordset
Dim strsql1 As String
Dim strsql1bis As String
Dim v_sex As Integer
Dim v_message As String


' See if the Sex is present in the DEMOG panel '
strsql1 = "SELECT SEX" & _
" From LAB_DEMO_DEMOG_ALL" & _
" where PATID = '" & Me.PATID & "'"
Set rs1 = CurrentProject.Connection.Execute(strsql1)

If Not rs1.EOF Then
v_sex = NoNull(rs1("SEX").Value)
End If

If v_sex = 0 Then
v_message = "The sex is missing for patient " & Me.PATID & ". The sex is mandatory to retrieve lab normal ranges."
strsql1bis = "INSERT INTO Error_message_table (Study, Patid, Visit, Page, Message) " & _
"VALUES ('" & Me.STUDY & "','" & Me.PATID & "','" & Me.BLOCK & "','" & Me.PAGE & "','" & v_message & "'); "
Set rs1bis = CurrentProject.Connection.Execute(strsql1bis)
End If

End Sub

Avec l'outil debug il me met bien les bonnes valeurs dans toutes les variables sauf dans PAGE.....
Qqn a une idée ??

Merci beaucoup !

2 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
Salut
Es-tu sûr que le champ Page dans lequel tu veux insérer Me.Page soit un champ de type texte ?
S'il est numérique, il ne faut pas de ' pour encadrer la valeur.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
D'autre part, la méthode correcte pour récupérer des données dans un RecordSet sous ADBODB est :
monRecordSet.Open maCdeSQL, maConnexionDB, ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)