Accueil > Forum > > > > Probleme de recordset
Probleme de recordset
samedi 20 mai 2006 à 16:15:57 |
Probleme de recordset

Nirmak
|
Voilà mon code : Private Sub Commande3_Click() Dim dbs As DAO.Database Dim PathFic As String Dim NomFic As String Dim NomFicXLS As String Dim NomTable As String Dim iNom_dpt As String Dim iNom_ville As String Dim iNbr_hab As Integer Dim i As Integer Dim j As Integer Dim sql As String Dim num_dept As String Dim rsetvar As Recordset Dim tmp As String Set dbs = CurrentDb Set ClasseurXLS = CreateObject("Excel.application") 'Ouverture du classeur d'importation ClasseurXLS.Workbooks.Open PathFic & "F:\JP\2005-06 OMGL3 S2 TM_2\IMPORT_EXPORT VILLES.xls" 'Set rs = dbs.OpenRecordset("SELECT NOM_VILLE FROM VILLES WHERE NOM_VILLE=iNom_ville;", dbOpenDynaset) i = 2 Do While ClasseurXLS.cells(i, 1) <> "" 'Recuperation des données lignes par lignes iNom_ville = ClasseurXLS.cells(i, 1) iNom_dpt = ClasseurXLS.cells(i, 2) iNbr_hab = ClasseurXLS.cells(i, 3) 'Recuperation du des villes étant déjà dans la base de données sql = "SELECT NOM_VILLE FROM VILLES WHERE NOM_VILLE=iNom_ville;" Set rsetvar = dbs.OpenRecordset(sql, dbOpenDynaset) 'Verification que la ville n'existe pas déjà dans la base de données If rsetvar.RecordCount = 0 Then sql = "SELECT N°_DéPARTEMENT FROM DéPARTEMENTS WHERE NOM_DéPARTEMENT=iNom_dpt" Set rsetvar = dbs.OpenRecordset(sql, dbOpenDynaset) 'Determine si le departement existe déjà ou pas, et l'ajoute le cas echeant If rsetvar.RecordCount = 0 Then sql = "INSERT INTO DéPARTEMENTS (NOM_DéPARTEMENT) values ('" & iNom_dpt & "');" dbs.Execute sql End If 'Incrementation du nombre de changement apporte dans la base de données, ie le nombre de villes ajoutees j = j + 1 sql = "INSERT INTO VILLES (N°_DéPARTEMENT,NOM_VILLE,NOMBRE_HABITANT_VILLE) values ('[SELECT DéPARTEMENTS.N°_DéPARTEMENT FROM DéPARTEMENTS WHERE NOM_DéPARTEMENT=iNom_dpt;]', '" & iNom_ville & "' , '" & iNbr_hab & "');" 'Insertion dans la base de donnees de la ville dbs.Execute sql End If 'Incrementation du numero de la ligne sous Excelle i = i + 1 Loop 'Fermeture du classeur d'importation ClasseurXLS.Workbooks.Close 'Affichage du nombre d'operation effectuee MsgBox ("Importation des " & j & " données effectuée") End Sub
C'est l'initialisation des recordset qui ne marche pas... Je ne suis pas une flêche en VB, certainement que c'est une erreur de débutant, mais ce problème me gène déjà depuis pas mal de temps. N'hésitez à demander des précisions sur le code si il y a quelque chose que vous ne comprenez pas. Merci de résoudre mon problème. Nirmak
|
|
samedi 20 mai 2006 à 16:36:56 |
Re : Probleme de recordset

jack
|
Salut On veut bien t'aider, mais il faudrait peut-être nous dire quel est le problème .... (erreur, où ?)
Je te rappelle quand même quelques règles de programmation SQL répétées des centaines de fois sur ce forum : - Les noms des champs comportant des caractères spéciaux (espace, accents, caractères non alphanumériques) doivent être encadrés de crochets [ et ] - Quand les champs sont de type numérique, les valeurs des champs non pas d'encadrement - Quand les champs sont de type texte, les valeurs des champs doivent être encadrés par des apostrophes ' - Quand les champs sont de type date, les valeurs des champs doivent être encadrés par des dièses #
D'autre part, toujours dans la catégorie syntaxe SQL : Dans un "Insert Into", soit tu utilises le not clé "Values" pour donner des valeurs fixes, soit tu utilises une sous requète "Select", mais pas les deux. Tu aurais pu découvrir ça dans n'importe quelle source parlant de DB.
Pour être sûr d'avoir correctement inséré les données, il ne suffit pas de compter le nombres d'instructions, mais il faut demander à l'instruction Execute de te fournir le nombre d'enregistrements touchés par ta requète : dbs.Execute sql, Nbre Pour un Insert Into, le résultat ne donner que 1 ... sauf si la requète échoue, mais dans le cas d'un Delete, ce chiffre peut-être plus important.
Vala Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accro
|
|
samedi 20 mai 2006 à 23:53:09 |
Re : Probleme de recordset

mortalino
|
Salut Jack, BONJOUR Nirmak.
1/ http://www.vbfrance.com/reglement.aspx clause n°2 !! 2/ Ne serait-ce pas plus simple de passer par une bdd Access plutôt qu'un tableur Excel ?
++ mortalino
|
|
Cette discussion est classée dans : sql, ville, dbs, stringdim, inom
Répondre à ce message
Sujets en rapport avec ce message
SQL, Access [ par leubaa ]
Bonjour,Voici le code que j'utilise pour ouvrir des donnees :Function UpdateAllergens(Num)Dim dbs As DAO.DatabaseDim donnees As DAO.RecordsetDim Formu
Pb recordset Access 2000 [ par Cl@rk ]
Bonjour, voilà j'essaye d'utiliser les recordset en DAO (je l'avais déjà fait mais il y a longtemps) et j'ai systématiquement une erreur "incompatibil
Concaténation fonction VB et requête SQL [ par chefinf ]
Bonjour,J'ai défini sous vb6 une fonction "Fct_St(ch as string) as string" et je veux l'utiliser dans la clause where d'une requête sql dans mon code
suppresion toutes les tables [ par Fenris ]
salutg voudrais supprimer touteles tables exitente de la base car je voudari les remplacer par ceux que jimportevoici mon codeSet Dbs = CurrentDbDim i
AIde SQL ACCESS [ par papaours ]
salut bon mon bout de code me sort trop peu de parametre 3 attendus.JE NE PIGES PAS;MERCI.Public XLS As ObjectSub Macro1() Dim DB1 As Database, dbs As
Access, SQL [ par leubaa ]
Bonjour,Je suis en train de développer un petite base de données, et je me trouve devant un problème. Un formulaire me permet de selectionner un enreg
Requete SQL VBA possible ?? [ par bigdan11 ]
Je voudrais savoir si c'est possible de faire une requete SQL dans du code VBA Access qui ferait ceci :Ma Table Access :Date Applicatio
Access via SQL [ par guigui28 ]
QQN peut il m'aider ?Je programme un petit utilitaire permetant de gérer mes clients, chaque client peut avoir plusieurs contacts. Comment rédiger une
Utilisation d'un fichier .adp [ par choupi64 ]
Salut,Voila un mois que je me suis totalement immergé dans les bases de données Sql avec Client Access.Mon probleme a l'air totalement ridicule, mais
My sql free [ par nemata ]
Bonjour j'ai bien chercher dans le forum mais il n'y a pas la reponse de ce que je cherche (ou du moin je l'ai pas vu). Voila mon probleme j'ai crée u
Livres en rapport
|
Derniers Blogs
ASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHEASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHE par fathi
Tout le monde est unanime pour dire que la programmation multi-thread et asynchrone est en train de devenir un sujet incontournable. Beaucoup de choses sont arrivées avec le framework 4 pour le code parallèle (TPL, PLinq,.) et bientôt, on va avoir l...
Cliquez pour lire la suite de l'article par fathi PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS !PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS ! par Etienne Margraff
J'ai récemment eu un problème pour obtenir l'intelliTrace sur un site web dans IIS. Il n'y avait pas de message d'erreur, rien dans le journal d'évènement Windows, et après 3 appels à une voyante, 2 visites chez un marabou, j'ai failli me résign...
Cliquez pour lire la suite de l'article par Etienne Margraff OFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONSOFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONS par junarnoalg
De nombreuses entreprises font le choix de SharePoint Online, service fourni au travers de l'offre de Microsoft Office 365. S'il est vrai que ce choix apporte un grand nombre d'avantages; rapidité de mise en œuvre, disponibilité, large couvertu...
Cliquez pour lire la suite de l'article par junarnoalg PRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGEPRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGE par richardc
http://www.c2idotnet.com/articles/presentation-des-api-rest-de-windows-azure-lister-les-comptes-de-storage
Désolé pour "toto", mais c2i existait avant blogs.developpeur.org et c'est mon site "officiel" ;-) ...
Cliquez pour lire la suite de l'article par richardc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|