Erreur 458 sur Get [Résolu]

elyote666 30 Messages postés lundi 17 mai 2004Date d'inscription 4 octobre 2007 Dernière intervention - 4 oct. 2007 à 18:54 - Dernière réponse : Warwoura 2 Messages postés dimanche 20 mars 2011Date d'inscription 27 avril 2011 Dernière intervention
- 20 mars 2011 à 16:36
Bonjour
Voilà l'erreur que j'ai, je m'en sors pas, j'ai lu par-çi par là quelques explications mais sa ne résoud pas mon problème.

"La variable utilise un type Automation non géré par Visual Basic , erreur 458"
Problème apparement avec cette variable "enr" pourtant j'ai essayé de changer de nom.

Option Explicit

Function recfik(fpath As String) As String

Dim enr, fichier As String
Dim i  As Long
Dim a As Integer
Dim numfile As Integer

i = 1
numfile = FreeFile

Open fpath For Binary As #1

Do While Not EOF(1)
    enr = String(1, " ")
    Get #numfile, i, enr
    a = Asc(enr)
   
    If a <> 0 Then
        fichier = fichier & enr
    End If
    i = i + 1
Loop

Close #1

recfik = fichier

End Function
Afficher la suite 

5 réponses

Répondre au sujet
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 4 oct. 2007 à 20:20
+3
Utile
Déja essaye en déclarant correctement ta variable enr pour voir si ça change quelque chose :

Dim enr As String , fichier As String

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_casy
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 4 oct. 2007 à 20:25
0
Utile
Autre chose, j'avais à peine survoler ton code.

Quand tu déclare une variable numfile, il faudrait s'en servir ensuite
Tu fais un Get sur numfile, or numfile n'est pas forcément le fichier que tu as ouvert, donc certainement source de l'erreur

Option Explicit

Function recfik(fpath As String) As String

Dim enr, fichier As String
Dim i  As Long
Dim a As Integer
Dim numfile As Integer

i = 1
numfile = FreeFile

Open fpath For Binary As #numfile

Do While Not EOF(1)
   enr = String(1, " ")
   Get #numfile, i, enr
   a = Asc(enr)
 
   If a <> 0 Then
       fichier = fichier & enr
   End If
   i = i + 1
Loop

Close #numfile

recfik = fichier

End Function<hr />
, ----
[code.aspx?ID=41455 By Renfield]

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #   
Commenter la réponse de cs_casy
elyote666 30 Messages postés lundi 17 mai 2004Date d'inscription 4 octobre 2007 Dernière intervention - 4 oct. 2007 à 21:06
0
Utile
J'ai déclaré la variable ainsi :
"dim enr as string"
Celà a résolu mon problème, j'ai toujours déclaré les variables ainsi :
dim a,b,c as type
et jamais de problème.
Pour le numéro de fichier grossière erreur de ma part...mais ce n'est pas ça qui posait problème... bizarre

merçi de ton aide
Commenter la réponse de elyote666
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 4 oct. 2007 à 21:31
0
Utile
En VB6 si tu déclare Dim a,b,c As String, seule c sera de type String, a et b sont de type Variant.
Pour avoir les trois de type String, il faut bien faire Dim a As String, b As String, c As String

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
Commenter la réponse de cs_casy
Warwoura 2 Messages postés dimanche 20 mars 2011Date d'inscription 27 avril 2011 Dernière intervention - 20 mars 2011 à 16:36
0
Utile
aidez -moi SVP j sui entr1 d faire mn P.F.E Gestion de centre de beauté sur vb6 il m'intervient cette erreur la variable utilise un type automation non géré ...erreur 458 .... koi fèèèèèr é voila mon code :
Private Sub calculpied()

Dim TOHT As Double
Dim TOREM As Double
Dim TOTVA As Double
Dim TOTTC As Double


Dim RS As New ADODB.Recordset
Dim req As String
Rem 0 1 2 3 4

req = "select Qte, PHT, Taux_remise, Taux_TVA, TOTTC from detail_achat where N_BE='" & Me.txtN_BE.Text & "'"
RS.Open req, cn, adOpenDynamic, adLockOptimistic

TOHT = 0
TOREM = 0
TOTVA = 0
TOTTC = 0

While Not RS.EOF
Rem calcul totht

(((iciiii la faute)))) TOHT = TOHT + (RS.Fields(0) * RS.Fields(1))/color

Rem calcul totrem
TOREM = TOREM + RS.Fields(Qte) * RS.Fields(PHT) * RS.Fields(Taux_TVA) / 100

Rem calcul tottva

TOTVA = TOTVA + (RS.Fields(Qte) * RS.Fields(PHT) * (1 - RS.Fields(Taux_TVA) / 100)) * (1 + RS.Fields(Taux_remise) / 100)

RS.MoveNext
Wend

Rem calcul totttc
TOTTC = (TOHT - TOREM + TOTVA)


affichage


Me.txtTOHT.Text = TOHT
Me.txttOREM.Text = TOREM
Me.TxtTOTVA.Text = TOTVA
Me.txtTOTTC.Text = TOTTC

End Sub
Commenter la réponse de Warwoura

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.