Requêtre paramétrée, champ mémo, et paramètre Text
2 réponses
Xavier HUE
Bonjour la Communauté.
Win 2000 SP4, Access XP SP3.
Petit problème avec la requête paramétrée suivante:
PARAMETERS PrmDbaRefCod Long,
PrmRefColNom Text ( 255 ),
PrmRefNumOrd Long,
PrmRefPrpValSrc Text;
INSERT INTO TblReferentielComparaison ( DbaRefCod, RefColNom, RefNumOrd,
RefPrpValSrc )
SELECT PrmDbaRefCod AS Expr1,
PrmRefColNom AS Expr2,
PrmRefNumOrd AS Expr6,
PrmRefPrpValSrc AS Expr7;
Dans la table TblReferentielComparaison, le champ PrmRefPrpValSrc est de
type Mémo.
Si je tente d'insérer une chaine alpha (en l'occurrence, une chaine SQL
source d'une requête enregistrée) de plus de 255 caractères par VBA,
j'obtiens l'erreur: Valeur de propriété non valide
Lors de l'erreur, la variable varPrpSrcValeur (Variant) contient plus de
1600 caractères.
Ci-dessous extrait du code:
Dim lngCodeAnalyse As Long
Dim strCodeCollect As String
Dim NumOrdre As Long
Dim varPrpSrcValeur As Variant
...
varPrpSrcValeur = ObjetQuery.SQL 'Contient la chaine SQL d'un QueryDefs
Dans l'aide Access (Référence SQL, Type de données SQL), le type Text sans
définition de longueur est sensé accepté 2,18Go!!
Je dois confusionner quelque part ;-)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Rv
Bonjour,
J'ai déjà eu ce problème et je n'ai su que le contourner en utilisant ADO plutôt que DAO. Je ne sais pas si cette solution vous conviendra mais voici quand même un code testé:
Sub test2() Dim objReq As ADODB.Command Dim strP As String
Set objReq = New ADODB.Command objReq.ActiveConnection = CurrentProject.Connection objReq.CommandType = adCmdStoredProc objReq.CommandText = "Requête1" ' La requête s'appelle Requête1 objReq.Parameters.Append objReq.CreateParameter("p", adVarChar, adParamInput, Len(strP), strP) ' LE paramétre s'appelle p objReq.Execute Set objReq = Nothing End Sub
Ne pas oublier la référence à ADO...
A+
Rv
"Xavier HUE" a écrit dans le message de news:
Bonjour la Communauté.
Win 2000 SP4, Access XP SP3.
Petit problème avec la requête paramétrée suivante:
PARAMETERS PrmDbaRefCod Long, PrmRefColNom Text ( 255 ), PrmRefNumOrd Long, PrmRefPrpValSrc Text; INSERT INTO TblReferentielComparaison ( DbaRefCod, RefColNom, RefNumOrd, RefPrpValSrc ) SELECT PrmDbaRefCod AS Expr1, PrmRefColNom AS Expr2, PrmRefNumOrd AS Expr6, PrmRefPrpValSrc AS Expr7;
Dans la table TblReferentielComparaison, le champ PrmRefPrpValSrc est de type Mémo.
Si je tente d'insérer une chaine alpha (en l'occurrence, une chaine SQL source d'une requête enregistrée) de plus de 255 caractères par VBA, j'obtiens l'erreur: Valeur de propriété non valide Lors de l'erreur, la variable varPrpSrcValeur (Variant) contient plus de 1600 caractères.
Ci-dessous extrait du code:
Dim lngCodeAnalyse As Long Dim strCodeCollect As String Dim NumOrdre As Long Dim varPrpSrcValeur As Variant
...
varPrpSrcValeur = ObjetQuery.SQL 'Contient la chaine SQL d'un QueryDefs
Dans l'aide Access (Référence SQL, Type de données SQL), le type Text sans définition de longueur est sensé accepté 2,18Go!! Je dois confusionner quelque part ;-)
D'avance merci pour vos pistes.
Cordialement. Xavier.
Bonjour,
J'ai déjà eu ce problème et je n'ai su que le contourner en utilisant
ADO plutôt que DAO. Je ne sais pas si cette solution vous conviendra mais
voici quand même un code testé:
Sub test2()
Dim objReq As ADODB.Command
Dim strP As String
Set objReq = New ADODB.Command
objReq.ActiveConnection = CurrentProject.Connection
objReq.CommandType = adCmdStoredProc
objReq.CommandText = "Requête1" ' La requête s'appelle Requête1
objReq.Parameters.Append objReq.CreateParameter("p", adVarChar,
adParamInput, Len(strP), strP) ' LE paramétre s'appelle p
objReq.Execute
Set objReq = Nothing
End Sub
Ne pas oublier la référence à ADO...
A+
Rv
"Xavier HUE" <XavierHUE@discussions.microsoft.com> a écrit dans le message
de news:194A1753-699E-4E0C-8193-DA37D6CA234A@microsoft.com...
Bonjour la Communauté.
Win 2000 SP4, Access XP SP3.
Petit problème avec la requête paramétrée suivante:
PARAMETERS PrmDbaRefCod Long,
PrmRefColNom Text ( 255 ),
PrmRefNumOrd Long,
PrmRefPrpValSrc Text;
INSERT INTO TblReferentielComparaison ( DbaRefCod, RefColNom, RefNumOrd,
RefPrpValSrc )
SELECT PrmDbaRefCod AS Expr1,
PrmRefColNom AS Expr2,
PrmRefNumOrd AS Expr6,
PrmRefPrpValSrc AS Expr7;
Dans la table TblReferentielComparaison, le champ PrmRefPrpValSrc est de
type Mémo.
Si je tente d'insérer une chaine alpha (en l'occurrence, une chaine SQL
source d'une requête enregistrée) de plus de 255 caractères par VBA,
j'obtiens l'erreur: Valeur de propriété non valide
Lors de l'erreur, la variable varPrpSrcValeur (Variant) contient plus de
1600 caractères.
Ci-dessous extrait du code:
Dim lngCodeAnalyse As Long
Dim strCodeCollect As String
Dim NumOrdre As Long
Dim varPrpSrcValeur As Variant
...
varPrpSrcValeur = ObjetQuery.SQL 'Contient la chaine SQL d'un QueryDefs
Dans l'aide Access (Référence SQL, Type de données SQL), le type Text sans
définition de longueur est sensé accepté 2,18Go!!
Je dois confusionner quelque part ;-)
J'ai déjà eu ce problème et je n'ai su que le contourner en utilisant ADO plutôt que DAO. Je ne sais pas si cette solution vous conviendra mais voici quand même un code testé:
Sub test2() Dim objReq As ADODB.Command Dim strP As String
Set objReq = New ADODB.Command objReq.ActiveConnection = CurrentProject.Connection objReq.CommandType = adCmdStoredProc objReq.CommandText = "Requête1" ' La requête s'appelle Requête1 objReq.Parameters.Append objReq.CreateParameter("p", adVarChar, adParamInput, Len(strP), strP) ' LE paramétre s'appelle p objReq.Execute Set objReq = Nothing End Sub
Ne pas oublier la référence à ADO...
A+
Rv
"Xavier HUE" a écrit dans le message de news:
Bonjour la Communauté.
Win 2000 SP4, Access XP SP3.
Petit problème avec la requête paramétrée suivante:
PARAMETERS PrmDbaRefCod Long, PrmRefColNom Text ( 255 ), PrmRefNumOrd Long, PrmRefPrpValSrc Text; INSERT INTO TblReferentielComparaison ( DbaRefCod, RefColNom, RefNumOrd, RefPrpValSrc ) SELECT PrmDbaRefCod AS Expr1, PrmRefColNom AS Expr2, PrmRefNumOrd AS Expr6, PrmRefPrpValSrc AS Expr7;
Dans la table TblReferentielComparaison, le champ PrmRefPrpValSrc est de type Mémo.
Si je tente d'insérer une chaine alpha (en l'occurrence, une chaine SQL source d'une requête enregistrée) de plus de 255 caractères par VBA, j'obtiens l'erreur: Valeur de propriété non valide Lors de l'erreur, la variable varPrpSrcValeur (Variant) contient plus de 1600 caractères.
Ci-dessous extrait du code:
Dim lngCodeAnalyse As Long Dim strCodeCollect As String Dim NumOrdre As Long Dim varPrpSrcValeur As Variant
...
varPrpSrcValeur = ObjetQuery.SQL 'Contient la chaine SQL d'un QueryDefs
Dans l'aide Access (Référence SQL, Type de données SQL), le type Text sans définition de longueur est sensé accepté 2,18Go!! Je dois confusionner quelque part ;-)
D'avance merci pour vos pistes.
Cordialement. Xavier.
Xavier HUE
Bonjour Rv,
Merci pour l'info. Je vais donc "contourner" également :-(
Tant qu'à "bricoler", je vais continuer avec DAO et un Recordset. Je ne me suis pas encore frotté à ADO.
Cordialement. Xavier.
Bonjour,
J'ai déjà eu ce problème et je n'ai su que le contourner en utilisant ADO plutôt que DAO. Je ne sais pas si cette solution vous conviendra mais voici quand même un code testé:
Sub test2() Dim objReq As ADODB.Command Dim strP As String
Set objReq = New ADODB.Command objReq.ActiveConnection = CurrentProject.Connection objReq.CommandType = adCmdStoredProc objReq.CommandText = "Requête1" ' La requête s'appelle Requête1 objReq.Parameters.Append objReq.CreateParameter("p", adVarChar, adParamInput, Len(strP), strP) ' LE paramétre s'appelle p objReq.Execute Set objReq = Nothing End Sub
Ne pas oublier la référence à ADO...
A+
Rv
"Xavier HUE" a écrit dans le message de news:
Bonjour la Communauté.
Win 2000 SP4, Access XP SP3.
Petit problème avec la requête paramétrée suivante:
PARAMETERS PrmDbaRefCod Long, PrmRefColNom Text ( 255 ), PrmRefNumOrd Long, PrmRefPrpValSrc Text; INSERT INTO TblReferentielComparaison ( DbaRefCod, RefColNom, RefNumOrd, RefPrpValSrc ) SELECT PrmDbaRefCod AS Expr1, PrmRefColNom AS Expr2, PrmRefNumOrd AS Expr6, PrmRefPrpValSrc AS Expr7;
Dans la table TblReferentielComparaison, le champ PrmRefPrpValSrc est de type Mémo.
Si je tente d'insérer une chaine alpha (en l'occurrence, une chaine SQL source d'une requête enregistrée) de plus de 255 caractères par VBA, j'obtiens l'erreur: Valeur de propriété non valide Lors de l'erreur, la variable varPrpSrcValeur (Variant) contient plus de 1600 caractères.
Ci-dessous extrait du code:
Dim lngCodeAnalyse As Long Dim strCodeCollect As String Dim NumOrdre As Long Dim varPrpSrcValeur As Variant
...
varPrpSrcValeur = ObjetQuery.SQL 'Contient la chaine SQL d'un QueryDefs
Dans l'aide Access (Référence SQL, Type de données SQL), le type Text sans définition de longueur est sensé accepté 2,18Go!! Je dois confusionner quelque part ;-)
D'avance merci pour vos pistes.
Cordialement. Xavier.
Bonjour Rv,
Merci pour l'info.
Je vais donc "contourner" également :-(
Tant qu'à "bricoler", je vais continuer avec DAO et un Recordset.
Je ne me suis pas encore frotté à ADO.
Cordialement.
Xavier.
Bonjour,
J'ai déjà eu ce problème et je n'ai su que le contourner en utilisant
ADO plutôt que DAO. Je ne sais pas si cette solution vous conviendra mais
voici quand même un code testé:
Sub test2()
Dim objReq As ADODB.Command
Dim strP As String
Set objReq = New ADODB.Command
objReq.ActiveConnection = CurrentProject.Connection
objReq.CommandType = adCmdStoredProc
objReq.CommandText = "Requête1" ' La requête s'appelle Requête1
objReq.Parameters.Append objReq.CreateParameter("p", adVarChar,
adParamInput, Len(strP), strP) ' LE paramétre s'appelle p
objReq.Execute
Set objReq = Nothing
End Sub
Ne pas oublier la référence à ADO...
A+
Rv
"Xavier HUE" <XavierHUE@discussions.microsoft.com> a écrit dans le message
de news:194A1753-699E-4E0C-8193-DA37D6CA234A@microsoft.com...
Bonjour la Communauté.
Win 2000 SP4, Access XP SP3.
Petit problème avec la requête paramétrée suivante:
PARAMETERS PrmDbaRefCod Long,
PrmRefColNom Text ( 255 ),
PrmRefNumOrd Long,
PrmRefPrpValSrc Text;
INSERT INTO TblReferentielComparaison ( DbaRefCod, RefColNom, RefNumOrd,
RefPrpValSrc )
SELECT PrmDbaRefCod AS Expr1,
PrmRefColNom AS Expr2,
PrmRefNumOrd AS Expr6,
PrmRefPrpValSrc AS Expr7;
Dans la table TblReferentielComparaison, le champ PrmRefPrpValSrc est de
type Mémo.
Si je tente d'insérer une chaine alpha (en l'occurrence, une chaine SQL
source d'une requête enregistrée) de plus de 255 caractères par VBA,
j'obtiens l'erreur: Valeur de propriété non valide
Lors de l'erreur, la variable varPrpSrcValeur (Variant) contient plus de
1600 caractères.
Ci-dessous extrait du code:
Dim lngCodeAnalyse As Long
Dim strCodeCollect As String
Dim NumOrdre As Long
Dim varPrpSrcValeur As Variant
...
varPrpSrcValeur = ObjetQuery.SQL 'Contient la chaine SQL d'un QueryDefs
Dans l'aide Access (Référence SQL, Type de données SQL), le type Text sans
définition de longueur est sensé accepté 2,18Go!!
Je dois confusionner quelque part ;-)
Merci pour l'info. Je vais donc "contourner" également :-(
Tant qu'à "bricoler", je vais continuer avec DAO et un Recordset. Je ne me suis pas encore frotté à ADO.
Cordialement. Xavier.
Bonjour,
J'ai déjà eu ce problème et je n'ai su que le contourner en utilisant ADO plutôt que DAO. Je ne sais pas si cette solution vous conviendra mais voici quand même un code testé:
Sub test2() Dim objReq As ADODB.Command Dim strP As String
Set objReq = New ADODB.Command objReq.ActiveConnection = CurrentProject.Connection objReq.CommandType = adCmdStoredProc objReq.CommandText = "Requête1" ' La requête s'appelle Requête1 objReq.Parameters.Append objReq.CreateParameter("p", adVarChar, adParamInput, Len(strP), strP) ' LE paramétre s'appelle p objReq.Execute Set objReq = Nothing End Sub
Ne pas oublier la référence à ADO...
A+
Rv
"Xavier HUE" a écrit dans le message de news:
Bonjour la Communauté.
Win 2000 SP4, Access XP SP3.
Petit problème avec la requête paramétrée suivante:
PARAMETERS PrmDbaRefCod Long, PrmRefColNom Text ( 255 ), PrmRefNumOrd Long, PrmRefPrpValSrc Text; INSERT INTO TblReferentielComparaison ( DbaRefCod, RefColNom, RefNumOrd, RefPrpValSrc ) SELECT PrmDbaRefCod AS Expr1, PrmRefColNom AS Expr2, PrmRefNumOrd AS Expr6, PrmRefPrpValSrc AS Expr7;
Dans la table TblReferentielComparaison, le champ PrmRefPrpValSrc est de type Mémo.
Si je tente d'insérer une chaine alpha (en l'occurrence, une chaine SQL source d'une requête enregistrée) de plus de 255 caractères par VBA, j'obtiens l'erreur: Valeur de propriété non valide Lors de l'erreur, la variable varPrpSrcValeur (Variant) contient plus de 1600 caractères.
Ci-dessous extrait du code:
Dim lngCodeAnalyse As Long Dim strCodeCollect As String Dim NumOrdre As Long Dim varPrpSrcValeur As Variant
...
varPrpSrcValeur = ObjetQuery.SQL 'Contient la chaine SQL d'un QueryDefs
Dans l'aide Access (Référence SQL, Type de données SQL), le type Text sans définition de longueur est sensé accepté 2,18Go!! Je dois confusionner quelque part ;-)