Virgule !!

Résolu
cs_lhomme Messages postés 27 Date d'inscription lundi 7 juin 2004 Statut Membre Dernière intervention 21 juillet 2004 - 19 juil. 2004 à 12:26
cs_PhilippeE Messages postés 437 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 10 août 2010 - 20 juil. 2004 à 09:35
bonjour,
jai un petit probleme qui devient tres genant!

je fais un import basic de donnees de donnees a partir d un fichier excel vers une table Access.

le probleme est que lorsque j importe des chiffres a virgule mon programme les ecrit sans la virgule

ex 23,546 => 23456

Pkoi donc ??

Le probleme apparait pour les valeurs de iCSThis et de iCSTord
Voici mon code (sinon il sont declares en chiffre dans ma table Import )

 

Option Compare Database
Option Explicit

Public ClasseurXLS As Object

Private Sub Befehl8_Click()

Dim PathFic As String
Dim i As Integer
Dim j As Integer
Dim sql1 As String
Dim dbs As Database
Dim rs As Recordset

Dim iSatz As String
Dim i9AVersion As String
Dim iProduct As String
Dim iCFU As String
Dim iCPV As String
Dim iCCountry As String
Dim i9ALocno As String
Dim iCChannel As String
Dim i0Calweek As String
Dim i0Unit As String
Dim iCSThis As Double
Dim iCSTord As Double
 
'initialization of the objects we use
Set dbs = CurrentDb
Set ClasseurXLS = CreateObject("Excel.application")

'Initialization : ask the path of the file
If (Text0.Value <> "") Then
    PathFic = Text0
Else
    MsgBox ("The name of the file 1 is missing")
    Forms!ImportForm![Text0].SetFocus
    Exit Sub
End If

'Open the Worbook to import the information
ClasseurXLS.Workbooks.Open PathFic
ClasseurXLS.Visible = True

'  To use the recordsets, the Microsoft DAO 2.5/3.5 Compatibility Library is needed

i = 1
    
Do While ClasseurXLS.Cells(i, 1) <> ""
  

    i9AVersion = "00" & ClasseurXLS.Cells(i, 1)
    iProduct = "0000000000000000000000000000000000000" & ClasseurXLS.Cells(i, 2)
    iCFU = "0" & ClasseurXLS.Cells(i, 3)
    iCPV = "0" & ClasseurXLS.Cells(i, 4)
    iCCountry = ClasseurXLS.Cells(i, 5)
    i9ALocno = "00" & ClasseurXLS.Cells(i, 6)
    iCChannel = "0" & ClasseurXLS.Cells(i, 7)
    i0Calweek = ClasseurXLS.Cells(i, 8)
    i0Unit = ClasseurXLS.Cells(i, 9)
    iCSThis = ClasseurXLS.Cells(i, 10)
    iCSTord = ClasseurXLS.Cells(i, 11)
    
    sql1 = "insert into Import (9AVERSION,PRODUCT,C_FU,C_PV,C_COUNTRY,9ALOCNO,C_CHANNEL, 0CALWEEK, 0UNIT,C_STHIS,C_STORD) VALUES ('" & i9AVersion & "','" & iProduct & "','" & iCFU & "','" & iCPV & "','" & iCCountry & "','" & i9ALocno & "','" & iCChannel & "','" & i0Calweek & "','" & i0Unit & "'," & iCSThis & "," & iCSTord & ")"
    dbs.Execute (sql1)
    

    i = i + 1

Loop

'closing the Workbook
ClasseurXLS.Workbooks.Close

MsgBox "finito"

    
    
End Sub

4 réponses

cs_PhilippeE Messages postés 437 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 10 août 2010 2
20 juil. 2004 à 09:35
CInt va te générer un nombre entier de type Integer (-32768 -> 32767).

Tu devrais plutôt utiliser CSng ou Val pour convertir tes données
* Val si tu as un point décimal
* CSng si tu as une virgule
3
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
19 juil. 2004 à 13:52
peut etre parce que la virgule n'est pas reconnue, ca fait quoi si tu changes la virgule en un point?
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
cs_lhomme Messages postés 27 Date d'inscription lundi 7 juin 2004 Statut Membre Dernière intervention 21 juillet 2004
19 juil. 2004 à 14:00
heu en fait c est bien un point que j ai et pas une virgule.

Access ne reconnaitrait pas le point ?

ca veut dire qu il faut que recupere mon chiffre en tant que string pour avoir le point et ensuite dans access , il faut que je caste ce string en int ?

c est koi comme fonction deja pour caster ?

Cint() ??
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
19 juil. 2004 à 14:13
bah ouais c'est une solution ce que tu dis... par contre pour la fonction je peux pas t'aider, car je ne suis pas programmeur VB!!!
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
Rejoignez-nous