String =null c'est pas bon les String ont peur pas le vide!
variant=null !
String =null c'est pas bon les String ont peur pas le vide!
variant=null !
Fais une proc stok qui prend une valeur et renvoie la valeur donnée en paramètre.
il faut initialiser les optionnels!
voila le test que jai fait et qui fonctionne!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Function ConectReporte(Feuille As Worksheet, Vfilas As Integer, Optional FechaC As Variant, Optional FechaV As Variant=null, _ Optional CodCli As Variant=null, Optional Cuentas As Variant=null, Optional GroupCli As Variant=null, Optional Vendedor As Variant=null, Optional TpoDoc As Variant=null)
par défaut le paramètres sont ByVal vue qui'ils sont en append un passage par valeurs suffi!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Sql = "SELECT * FROM T_Job WHERE (Job = ?)" Set Prm(0) = cn.Param("Job", adInteger, adParamInput, 4, Null) ActiveCell.CopyFromRecordset cn.CommadExecute(adCmdText, Prm, Sql)
maintenant il m'arrive de ne pas être le meilleur dans un domaine et en Proc Stoc c'est le cas![]()
Dernière modification par Invité ; 18/05/2017 à 16h11.
Godzestla,
J´ai essayé vide ("") ou sans valeur et meme message d´erreur: le type d´argument byRef ne coincide pas
Dysorthorgaphie,
J´ai donc fais plusieurs essayes avant de dire des bétises,
mon code avec optionalisation a l´initiation
et code de l´usf appelant la fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Function ConectReporte(Feuille As Worksheet, Vfilas As Integer, Optional FechaC As Variant = Null, Optional FechaV As Variant = Null, _ Optional CodCli As Variant = Null, Optional Cuentas As Variant = Null, Optional GroupCli As Variant = Null, Optional Vendedor As Variant = Null, Optional TpoDoc As Variant = Null) Dim Con As New ADODBRD, Sql As String Con.TYPEBASE = SQLSERVER2005 Con.Server = "BLADELAB01" Con.Base = "SBO_PORTUGAL_PRODUCCION" Con.User = "etiquetas" Con.PassWord = "francia" Dim prm(6) As Object Con.OpenConnetion Set prm(0) = Con.Param("FechaC", 12, 1, 15, FechaC) Set prm(1) = Con.Param("FechaV", 12, 1, 15, FechaV) Set prm(2) = Con.Param("CodCli", 12, 1, 20, CodCli) Set prm(3) = Con.Param("Cuentas", 12, 1, 30000, Cuentas) Set prm(4) = Con.Param("GroupCli", 12, 1, 10, GroupCli) Set prm(5) = Con.Param("Vendedor", 12, 1, 5, Vendedor) Set prm(6) = Con.Param("TpoDoc", 12, 1, 15, TpoDoc) Sql = "SBO_SP_LP_CuentaCorrienteClientesCon"
Ne fonctionne pas msg d´erreur le type d´argument byRef ne coincide pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part ConectReporte Feuille, 2, Null, Null, Null, Null, Null, Null, Null
Et lorsque je procede avec ton écriture:
Le message d´erreur est : utilisation non valide null...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Set prm(0) = Con.Param("FechaC", 12, 1, 15, Null) Set prm(1) = Con.Param("FechaV", 12, 1, 15, Null) Set prm(2) = Con.Param("CodCli", 12, 1, 20, Null) Set prm(3) = Con.Param("Cuentas", 12, 1, 30000, Null) Set prm(4) = Con.Param("GroupCli", 12, 1, 10, Null) Set prm(5) = Con.Param("Vendedor", 12, 1, 5, Null) Set prm(6) = Con.Param("TpoDoc", 12, 1, 15, Null)
Je tiens a préciser que j´aitesté avec les parametre de mon command en teste ou type variant
Sans succes
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set prm(0) = Con.Param("FechaC", 200, 1, 15, Null)
Donc j´ai passé la value de la fonction du post 3, de string a variant
optionaliser les variables a l´initialisation et définit les valeurs a null,
Ce qui me regle 2 pb:
-je peux laisser champs vide
-mettre valeur null
Je rectifie:
Donc je n´ai plus de message d´erreur sur les type de variables mais mon code vba ne se comporte pas comme sql, cad que lorsque je mets null, cela ne le traduit pas comme toute valeur possible, j´y ai cru et me suis un peu emballé meme...
J´alimente la discussion....
J´ai changé mon SQL
if @cuenta = ' '
begin
set @cuenta = null
end
pas fonctionner non plus...
C´est ma derniere idée du moment...
relis le poste #3!
Maintenant tu modifies ta procédure pour qu'elle retourne 'Null' quand le.paramètre est Null.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set prm(0) = Con.Param("Valor", 200, 1, 15, Null)
me retourne rien, fonctionne mais me retourne pas de valeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub CommandButton1_Click() Dim Feuille As String ConectP "Prueba", 2, Null End Sub
Donc code sql:
Code vba:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ALTER PROCEDURE SBO_SP_LP_PRUEBA @Valor nvarchar(10) AS SELECT ISNULL(@valor,'NULL') exec SBO_SP_LP_PRUEBA NULL
Cela me renvoie le texte null
Code : Sélectionner tout - Visualiser dans une fenêtre à part ConectP "Prueba", 2, Null
je vais continuer à chercher!
on est pas toujours à l'origine d'une procédure stocké et le DBA nous enverra sur le roses si on lui demande d'intervenir sur sa copie!
Dans ta procédure stocké tu fais un truc genre if param is null
Si je regarde ton poste #39 j'ai tendance a dire ça fonctionne!
Dernière modification par Invité ; 19/05/2017 à 06h57.
Bonjour a tous,
apres de plusieurs essaies j´y suis enfin arrivé!
Merci a tous pour vos précieuses aides!
Merci Dysorthographie![]()
Partager