

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
5 messages in org.openoffice.fr.prog[prog] PB mise à jour de base de donn...| From | Sent On | Attachments |
|---|---|---|
| BOTTIN Laurence - DGMT/SG/AG2 | Apr 12, 2006 7:51 am | |
| Laurent Godard | Apr 12, 2006 8:00 am | |
| DAVID Jean-Claude - CETE Ouest/DU/AEH | Apr 12, 2006 8:12 am | |
| Bernard Marcelly | Apr 12, 2006 9:01 am | |
| BOTTIN Laurence - DGMT/SG/AG2 | Apr 13, 2006 12:01 am |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | [prog] PB mise à jour de base de donnée BASE | Actions... |
|---|---|---|
| From: | BOTTIN Laurence - DGMT/SG/AG2 (laur...@equipement.gouv.fr) | |
| Date: | Apr 12, 2006 7:51:24 am | |
| List: | org.openoffice.fr.prog | |
Bonjour,
Je n'arrive pas à résoudre un problème dans la mise à jour de ma base de donnée à partir d'un tableau : Les "update" et les "insert into" semblent fonctionner tant que OOo est ouvert. Si j'ouvre la base de donnée après que la macro MajDonnees ait fonctionnée, elle a bien pris les modifications. Si je ferme complètement OOo, alors je retrouve la base de données dans son état initial.
tailleinitabSignataires est une variable globale tabSignataires est initialisé par une boîte de dialogue
Voici le code : '================================================================ Sub ConnecterSource() Dim oDBSource As String, login As String, password As String, dbURL As String Dim oDataSource As Object, oDBContext As Object dim mondocbase as object dbURL=ConvertToUrl("c:\modeles\dgmt\courrier.odb")
If NOT FileExists(dbURL) Then Msgbox "Problème de disponibilité de la base de données..." & chr(13) & "Alerte!!!" End If
REM Use the DatabaseContext to get a reference to the database. oDBContext = CreateUnoService("com.sun.star.sdb.DatabaseContext") oDataSource = oDBContext.getByName(dbURL) 'Les paramètres de connexion login = "" password = ""
maConnexion = oDataSource.getConnection(login, password) 'xray maconnexion if IsNull(maConnexion) then MsgBox("Connexion impossible", 16) Stop end if End Sub
'================================================================== Sub DeconnecterSource() maConnexion.close maConnexion.dispose End Sub
'===================================================== Sub majDonnees() On Error GoTo Erreurs
dim maRequete As Object, resuQuery As Object dim mesRows as long, monRow as long dim mesColonnes as long, maColonne as long dim nbColonnes as long, nbre dim instrSQL As String, monSignet As Variant dim i as integer dim monType as string
ConnecterSource maRequete = maConnexion.createStatement() maRequete.ResultSetConcurrency=1008 'Mise à jour des signataires
for i = 1 to ubound(tabSignataires(),1) if i <= tailleinitabSignataires then instrSQL="UPDATE " & """signataires""" instrSQL=instrSQL & " SET " instrSQL=instrSQL & """civilite""" & " = '" & tabSignataires (i, 1 ) & "', " instrSQL=instrSQL & """nom""" & " = '" & tabSignataires (i, 2 ) & "', " instrSQL=instrSQL & """prenom""" & " = '" & tabSignataires (i, 3 ) & "', " instrSQL=instrSQL & """service""" & " = '" & tabSignataires (i, 4 ) & "', " instrSQL=instrSQL & """telephone""" & " = '" & tabSignataires (i, 5 ) & "', " instrSQL=instrSQL & """telecopie""" & " = '" & tabSignataires (i, 6 ) & "', " instrSQL=instrSQL & """email""" & " = '" & tabSignataires (i, 7 ) & "', " instrSQL=instrSQL & """grade""" & " = '" & tabSignataires (i, 8 ) & "', " instrSQL=instrSQL & """fonction""" & " = '" & tabSignataires (i, 9 ) & "' WHERE " & """ID_signataires""" & " =" & tabSignataires (i, 0 ) else if tabSignataires (i, 0 )<>"" or _ tabSignataires (i, 1 )<>"" or _ tabSignataires (i, 2 )<>"" or _ tabSignataires (i, 3 )<>"" or _ tabSignataires (i, 4 )<>"" or _ tabSignataires (i, 5 )<>"" or _ tabSignataires (i, 6 )<>"" or _ tabSignataires (i, 7 )<>"" or _ tabSignataires (i, 8 )<>"" or _ tabSignataires (i, 9 )<>"" then
instrSQL="INSERT INTO " & """signataires""" & "( " instrSQL=instrSQL & """civilite""" & ", " instrSQL=instrSQL & """nom""" & ", " instrSQL=instrSQL & """prenom""" & ", " instrSQL=instrSQL & """service""" & ", " instrSQL=instrSQL & """telephone""" & ", " instrSQL=instrSQL & """telecopie""" & ", " instrSQL=instrSQL & """email""" & ", " instrSQL=instrSQL & """grade""" & ", " instrSQL=instrSQL & """fonction""" & ") " instrSQL=instrSQL & " VALUES ( " instrSQL=instrSQL & " '" & tabSignataires (i, 1 ) & "', " instrSQL=instrSQL & " '" & tabSignataires (i, 2 ) & "', " instrSQL=instrSQL & " '" & tabSignataires (i, 3 ) & "', " instrSQL=instrSQL & " '" & tabSignataires (i, 4 ) & "', " instrSQL=instrSQL & " '" & tabSignataires (i, 5 ) & "', " instrSQL=instrSQL & " '" & tabSignataires (i, 6 ) & "', " instrSQL=instrSQL & " '" & tabSignataires (i, 7 ) & "', " instrSQL=instrSQL & " '" & tabSignataires (i, 8 ) & "', " instrSQL=instrSQL & " '" & tabSignataires (i, 9 ) & "' )" end if
end if print instrSQL nbre = maRequete.executeUpdate(instrSQL) instrSQL="" next
DeconnecterSource Exit Sub Erreurs: erreur_num=err() erreur_txt=error(erreur_num) erreur_ligne = Erl() MsgBox("erreur n° " + erreur_num + " à la ligne " + erreur_ligne + chr(13) + erreur_txt, 1 + 16, "Macro recupcurseur") DeconnecterSource
End Sub
Merci d'avance
Laurence BOTTIN (DGMT/SG/AG2), <mailto:laur...@equipement.gouv.fr>







