begin process at 2012 02 11 12:51:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

VBA

 > 

erreur dans code vb


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

erreur dans code vb

mercredi 12 janvier 2005 à 13:50:11 | erreur dans code vb

fab101

Bonjour

voila j'ai fait ce code
qui permet d'ajouter des donnnées dans access a partir de excel



Sub importexcel() '(myname As String)



     Dim Plage As Range

     Dim Array1 As Variant
     

     Dim x As Variant

     Dim Db1 As DAO.Database
     

     Dim Rs1 As DAO.Recordset
     
     Dim appexcel As excel.Application
     Dim wbexcel As excel.Workbook
     Dim coucou As String
     Dim i As Integer
     
       
     
     
     Set appexcel = CreateObject("excel.application")
     appexcel.Visible = True
     Set wbexcel = appexcel.Workbooks.Open("c:\excel\classeur2.xls")
     
     appexcel.Sheets("feuil1").Select
     Set Plage = wbexcel.Worksheets("Feuil1").Range("a1").CurrentRegion.Offset(0, 0)


     ' Ouverture de la base de données Commandes.mdb

     Set Db1 = CurrentDb()
     Set Rs1 = Db1.OpenRecordset("site", dbOpenDynaset)


     ' Un objet Recordset représente les enregistrements d'une table

     

     ' Détermination de la taille de la plage à envoyer vers Access



     ' Ecriture des données depuis Excel vers les enregistrement de la table Factures


  With Rs1
 i = 1
  For i = 1 To 8


        .AddNew

.Fields("lieu") = Plage.Cells(8, 3)
.Fields("ville") = Plage.Cells(8, 4)
Plage.Select
.Update
'.MoveNext





Next
End With

  Set Plage = wbexcel.Worksheets("Feuil1").Range("C15:C24").CurrentRegion.Offset(0, 0)
   Set Plage = Plage.Resize(Plage.Rows.Count - 1, Plage.Columns.Count)
  Array1 = Plage.Value
    With Rs1
  For x = 1 To UBound(Array1, 1)
 
 
   .Edit
   
   .Fields("adresse") = Array1(x, 1)

   
   .Update
     
   .MoveNext
   
   Next
   
    End With
  appexcel.Workbooks.Close
 

     ' Fermeture de la base Commandes.mdb

    Db1.Close
     
     
     
     appexcel.Quit


End Sub


le probleme c'est qu'il ya une erreur sur edit et met aucun enregistrment en cours

la table est vide au depart

merci pour vos reponses
mercredi 12 janvier 2005 à 14:24:19 | Re : erreur dans code vb

madbob

Pour ajouter des valeurs dans une table...
Je préfère faire ma boucle sur le tableau excel

je construie la requete d'update et je l'execute en direct sans passer par un recordset.
dim mabase as database
dim Monsql as string

for i=0 to Fin step 1
'* Construction de la requete
Monsql = "Update SITE set lieu = '" &
Plage.Cells(8, 3) & "', ville = '" & Plage.Cells(8, 4) & "';"

'* execution de la mise à jour
mabase.Execute(Monsql)

'* Gestion de l'ereur sql
if err.number <> 0 then
    msgbox err.number & "#" & err.description
    exit sub
endif

'* réinitialisation de la chaine SQL
Monsql  = ""

next i

Apres seulement j'instancierai le Rsl avec movefirst/move next en mode EDit pour des mise à jour .
(Peut -être faut il que tu te positionnes à nouveau le move first je sais pas ou se balade le curseur dans ton cas de figure)

Mais franchement je préferai de loin faire tout ça depuis une feuille unique avec les 3 valeurs
lieu ville adresse... et une requete unitaire sans recordset pour la mise à jour.

Tu devrais t'interresser d'avantage à la gestion des erreurs

madbob
mercredi 12 janvier 2005 à 14:42:36 | Re : erreur dans code vb

madbob

Si ton curseur est sur le dernier enregistrement... forcément il n'en trouve plus

Quelques conseils si tu veux biens :
1) Utilise on error goto ou move next intercept l'erreur, et affiche le n° de l'erreur et son message,

2) Les recordset doivent être libérés après usage c'est plus propres notamment pour la gestion de la mémoire... Plus généralement, assures toi que les objets que tu instancies par un Set nécessitent  ou non d'être libérés :MonRs.close

madbob
mercredi 12 janvier 2005 à 15:01:30 | Re : erreur dans code vb

madbob

J'avai la tête dans le c... c'est pas un update que tu doit faire mais un
monsql = "INSERT INTO SITE values (" & val1 & ", '" val2 &"');"
ne pas oublier de parser correctement le sql avec le " ' " pour les valeurt non numériques

madbob


Cette discussion est classée dans : set, excel, plage, appexcel, array1


Répondre à ce message

Sujets en rapport avec ce message

erreur dans code vb [ par fab101 ] Bonjour voila j'ai fait ce code qui permet d'ajouter des donnnées dans access a partir de excel Probléme pour Mettre un tableau Excell dans un flexgrid [ par Geronimo62 ] Bonjour à tous, Je fait appelle à votre grand savoir pour m'aider à résoudre un probléme simple, voila, j'ai un petit programme en vba à terminer mai Au secours pb excel [ par elbrahimo ] salut je n'arrive pas à trouver d'où vient mon probleme, j'importe un fichier texte vers excel, cela marche bien qu'une fois, mais à la deuxieme fois Excel [ par mongii ] Bonjeur je veux ouvrir un fichier excel situé dans le même chemin que mon application Dim appExcel As Excel.Application Dim wbExcel As Excel.Workbook  URGENT : Pb important Transfer des données vers Excel ! [ par pataccess ] Quelqu'un peut il m'expliquer en deux seconde comment ca marche l'éxécution Excel au sein d'Access ?? En effet, je vous avoue etre perdu j'ai une base pb pour convertir du dbf en xls aidez moi svp [ par emilekader ] je cherche à convertir 4000 fichiers dbf en xls, en vb. je n'arrive pas à trouver le code pourconvertir le dbf en xls sous vb voilà mon code: Sub S pb pour convertir du dbf en xls aidez moi svp [ par emilekader ] je cherche à convertir 4000 fichiers dbf en xls, en vb. je n'arrive pas à trouver le code pourconvertir le dbf en xls sous vb voilà mon code: Sub S pb pour convertir du dbf en xls aidez moi svp [ par emilekader ] je cherche à convertir 4000 fichiers dbf en xls, en vb. je n'arrive pas à trouver le code pourconvertir le dbf en xls sous vb voilà mon code: Sub S VB6 + Excel [ par pcvesoul ] Quand je lance 2 fois de suite une generation de fichier excel, ca plante :Au début :   Set AppExcel = CreateObject("Excel.Application")   AppExcel.Vi chart [ par Chuy ] Bonsoir, je voudrais ouvrir un graphique excel dans mon application vb6. J'ai trouvé une petite aide qui m'explique comment faire, mais à la fin vb me


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,541 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales