IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Problème import Export...(syntaxe)


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 47
    Points : 46
    Points
    46
    Par défaut Problème import Export...(syntaxe)
    Bonjour,

    Je voudrais importer des données d'un tableau excel dans une table en utilisant du vba. Le programme permet de vérifier dans une table si la donnée existe (table historique), si la donnée n'existe pas je l'intègre dans une autre table (table machine), par contre si la donnée existe déja dans la table historique, je met juste a jour la date dans un des champs de ma table historique.

    Mon programme plante lors de l'injection des données:
    c'est a dire a cette ligne la:

    sqlMach = "INSERT INTO Machines (['Hostname'],['Adresse_IP']) VALUES ('" & serveurs_sup.Fields("Hostname") & "','" & serveurs_sup.Fields("Adresse IP") & "');"

    Pour info, je vous ai mis le code source du programme entier.

    Merci d'avance pour votre aide.

    Un étudiant désespéré...

    Private Sub Commande5_Click()
    '-----------------------
    'Attachement de la table
    '-----------------------
    Dim sqlMach As String
    Set BD = DBEngine.Workspaces(0).Databases(0)
    Set TableLiee = BD.CreateTableDef("Imp_affe")
    TableLiee.SourceTableName = "feuil1$"
    TableLiee.Connect = "Excel 5.0;DATABASE=" & fichier
    BD.TableDefs.Append TableLiee
    BD.TableDefs.Refresh
    '##################################################################
    '##################################################################
    ' BY SEB
    '##################################################################
    '##################################################################
    'Début Boucle sur tout les enr de Imp_affe (Excel)
    Set serveurs_sup = BD.openrecordset("Imp_affe")
    Do Until serveurs_sup.EOF
    '################# Création du recordset de Histo #################
    'Select histo.Hostname FROM historique AS histo WHERE histo.champ ="Afeediag" AND histo.Hostname = {recordset Excel_Temp en cour};
    '##################################################################

    sql = "Select histo.Hostname FROM historique AS histo WHERE histo.champ ='Afeediag' AND histo.Hostname = '" & serveurs_sup.Fields("Hostname") & "';"

    Set histo = BD.openrecordset(sql)



    '################ Création du recordset de Machine ################
    'Select mach.Hostname FROM Machines AS mach WHERE mach.champ ="Afeediag" AND mach.Hostname = {recordset Excel_Temp en cour};
    '##################################################################
    ' Si histo ne contient pas de valeur
    If histo.RecordCount = 0 Then
    'Select mach.Hostname FROM Machines_Afeediag AS mach WHERE mach.Hostname = 'BU73E111';
    'Select mach.Hostname FROM Machines AS mach WHERE mach.Afeediag = true AND mach.Hostname = 'BU73E111';
    sqlMach = "Select mach.Hostname FROM Machines AS mach WHERE mach.Afeediag = true AND mach.Hostname = '" & serveurs_sup.Fields("Hostname") & "';"
    MsgBox (sqlMach)
    Set machines = BD.openrecordset(sqlMach)
    ' Si mach contient une valeur
    If machines.RecordCount <> 0 Then
    'Update de cette element en fonction de la ligne tempo active
    sqlMach = "UPDATE Machines SET Machines.Adresse_IP = '" & serveurs_sup.Fields("Adresse IP") & "' WHERE Machines.Hostname = '" & serveurs_sup.Fields("Hostname") & "' ;"
    MsgBox (sqlMach)
    machines.Close
    'on enlève les mess d'avertissement
    DoCmd.SetWarnings False
    machines = BD.openrecordset(sqlMach)
    'on remet les mess d'avertissement
    DoCmd.SetWarnings True
    MsgBox ("Update")

    ' Sinon
    Else
    'Creation d'un enregistrement dans Machine
    sqlMach = "INSERT INTO Machines (['Hostname'],['Adresse_IP']) VALUES ('" & serveurs_sup.Fields("Hostname") & "','" & serveurs_sup.Fields("Adresse IP") & "');"
    MsgBox (sqlMach)
    DoCmd.SetWarnings False
    Set machines = BD.openrecordset(sqlMach)
    DoCmd.SetWarnings True
    MsgBox ("Create")
    ' Fin Si Mach
    End If
    machines.Close
    ' Fin Si Histo
    End If
    histo.Close

    'Element temp suivant
    serveurs_sup.MoveNext

    'Fin boucle
    Loop
    MsgBox ("Fin progression")
    'Machines.Close
    '##################################################################
    '##################################################################
    ' END BY SEB
    '##################################################################
    '##################################################################
    ''-------------------------------
    '' Gestion des serveurs supprimés
    ''-------------------------------
    'sql = "SELECT Machines.Hostname,Machines.Afeediag FROM Machines LEFT JOIN Imp_affe ON Machines.Hostname = Imp_affe.hostname WHERE (((Machines.Afeediag)=True));"
    'Set serveurs_sup = BD.openrecordset(sql)
    'Set histo = BD.openrecordset("historique")
    'Do Until serveurs_sup.EOF
    ' With histo
    ' .AddNew
    ' .Fields("hostname") = serveurs_sup.Hostname
    ' .Fields("champ") = "AfeeDiag"
    ' .Fields("date_maj") = date_fich
    ' .Fields("anc_valeur") = True
    ' .Fields("nou_valeur") = False
    ' .Update
    ' End With
    ' serveurs_sup.MoveNext
    'Loop
    'serveurs_sup.Close
    'histo.Close
    '
    ''---------------------------------
    '' Gestion des ajouts de serveurs
    ''---------------------------------
    'sql = "SELECT imp_affe.Hostname, imp_affe.OS, imp_affe.Afeediag FROM Machines INNER JOIN imp_affe ON Machines.Hostname = imp_affe.Hostname WHERE (((Machines.Afeediag)=False));"
    'Set serveurs_sup = BD.openrecordset(sql)
    'Set histo = BD.openrecordset("historique")
    'Do Until serveurs_sup.EOF
    ' With histo
    ' .AddNew
    ' .Fields("hostname") = serveurs_sup.Hostname
    ' .Fields("champ") = "AfeeDiag"
    ' .Fields("date_maj") = date_fich
    ' .Fields("anc_valeur") = False
    ' .Fields("nou_valeur") = True
    ' .Update
    ' End With
    ' serveurs_sup.MoveNext
    'Loop
    'serveurs_sup.Close
    'histo.Close
    '
    ''---------------------------------
    '' Gestion des creations de serveurs
    ''---------------------------------
    'sql = "SELECT imp_affe.Hostname, imp_affe.OS, imp_affe.Afeediag FROM Machines RIGHT JOIN imp_affe ON Machines.Hostname = imp_affe.Hostname WHERE (((Machines.Hostname) Is Null));"
    'Set serveurs_sup = BD.openrecordset(sql)
    'Set histo = BD.openrecordset("historique")
    'Set Machines = BD.openrecordset("machines")
    'Do Until serveurs_sup.EOF
    ' With histo
    ' .AddNew
    ' .Fields("hostname") = serveurs_sup.Hostname
    ' .Fields("champ") = "Creation"
    ' .Fields("date_maj") = Null
    ' .Fields("anc_valeur") = Null
    ' .Fields("nou_valeur") = False
    ' .Update
    ' End With
    ' With Machines
    ' .AddNew
    ' .Fields("hostname") = serveurs_sup.Hostname
    ' .Fields("os") = serveurs_sup.OS
    ' .Fields("afeediag") = True
    ' .Update
    ' End With
    ' serveurs_sup.MoveNext
    'Loop
    'serveurs_sup.Close
    'histo.Close
    'Machines.Close
    '---------------------------------
    '---------------------------------
    ' suprimme attachement (la table Imp_affe)
    ' ferme fenetre
    '---------------------------------
    DoCmd.DeleteObject acTable, "Imp_affe"
    '##############################################DoCmd.Close
    End Sub

  2. #2
    Membre averti Avatar de mcdotta
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 292
    Points : 324
    Points
    324
    Par défaut
    Hello, Mister Friiiiiitz,


    Essaie de supprimer tes apostrophes à l'intérieur des crochets...

    sqlMach = "INSERT INTO Machines ([Hostname],[Adresse_IP]) VALUES ('" & serveurs_sup.Fields("Hostname") & "','" & serveurs_sup.Fields("Adresse IP") & "');"

    Tiens nous au courant...

Discussions similaires

  1. Problème import/export : Utilisateurs non reconnus
    Par pT-benj dans le forum Administration
    Réponses: 2
    Dernier message: 09/03/2011, 08h55
  2. Probléme import export
    Par aymen007 dans le forum Administration
    Réponses: 2
    Dernier message: 05/10/2007, 17h40
  3. problème import export
    Par MrSaladin dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 10/07/2007, 11h06
  4. Problème import/export d'une base de donnée
    Par charlie koller dans le forum Débuter
    Réponses: 2
    Dernier message: 21/03/2007, 15h09
  5. Problème import Export...(syntaxe)
    Par friiitz dans le forum Access
    Réponses: 3
    Dernier message: 02/05/2006, 14h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo