Précédent   Forum du club des développeurs et IT Pro > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 17/12/2012, 19h49   #1
loufab
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 846
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 846
Points : 14 118
Points : 14 118
Par défaut [TUTO] Application ACCESS et Cloud Storage

Découvrez une solution d'application ACCESS sur Cloud Storage.

Ce tuto est réservé à un public averti. En effet de solides notions de VBA, de Classe, d'attachement et de gestion des conflits sont obligatoires.

http://loufab.developpez.com/tutorie...rage_msaccess/

Bonne lecture.
loufab est déconnecté   Envoyer un message privé Réponse avec citation 60
Vieux 18/12/2012, 10h20   #2
nico84
Expert Confirmé
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 641
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 50
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 641
Points : 2 627
Points : 2 627
Bonjour Fabrice,

Parfait, tuto très complet

Comme tu l'indiques, cette méthode est malheureusement limitée à une utilisation monoposte ce qui est souvent rédhibitoire Par contre cela règle définitivement tout souci de sauvegarde

Cela fait un an que j'ai placé ma dorsale dans une dropbox sans autre précaution et ça marche très bien aussi (car je suis le seul utilisateur). La gestion fine des conflits est un gros plus !
__________________
Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME
nico84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 10h32   #3
loufab
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 846
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 846
Points : 14 118
Points : 14 118
Merci Nico.

J'utilise cette soluce pour une petite assoc. pur l'instant pas de gros problèmes parce que les utilisateurs ont peu d'activité.

Je vais étudier un moyen de détection des conflits, à posteriori.
ça devrait pas être trop complexe à gérer.

Cordialement,
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 20h06   #4
f-leb
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 3 473
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 42
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 3 473
Points : 8 734
Points : 8 734
Super tutoriel avec des essais concluants
Je me suis juste fait engue#@¤* par un collègue qui partage la DropBox avec moi et qui a vu sa notification de mise à jour clignoter une partie de l'après-midi sur son poste
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 10h50   #5
loufab
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 846
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 846
Points : 14 118
Points : 14 118
Merci Fabien !
Comme je le disais c'est déjà en exploitation dans une asso.
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2012, 08h50   #6
GAYOT
Rédacteur/Modérateur
 
Avatar de GAYOT
 
Homme Jean-Damien GAYOT
Inscription : novembre 2004
Messages : 2 239
Détails du profil
Informations personnelles :
Nom : Homme Jean-Damien GAYOT
Âge : 57
Localisation : France, Meuse (Lorraine)

Informations professionnelles :
Secteur : Distribution

Informations forums :
Inscription : novembre 2004
Messages : 2 239
Points : 4 397
Points : 4 397
Envoyer un message via Skype™ à GAYOT
Bonjour
Bravo pour ce tuto très bien expliqué. Sur le coup, on regrette bien sûr les limites d'accès du système, mais à y bien réfléchir, pour les petites assocs, ce ne doit pas être bien gênant. C'est donc une bonne solution intermédiaire.
__________________
Plus j'avance et plus j'ai l'impression de ne rien savoir. Et comme j'essaie d'aller loin..!!.

Tutoriels sur:http://jdgayot.developpez.com

Pas de sujets techniques par Mp. Sinon
GAYOT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 19h20   #7
St-Jean
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 50
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : mars 2007
Messages : 50
Points : 28
Points : 28
Super, ce tuto tombe à point nommé.

J'ai déjà certaines feuilles de calcul (genre budget personnel) que je conserve sur DropBox, ce qui me permet d'en ouvrir de n'importe quel ordinateur la version la plus à jour sans me soucier de la synchro.

Ça fait six mois que je veux faire la même chose avec la dorsale de ma base Access de gestion professionnelle (à laquelle je suis seul à accéder, mais de trois machines différentes), mais que je n'ai pas eu le temps. Ce tuto va m'épargner des heures de réflexion et de tâtonnements.
Merci infiniment!

PS : les liens vers le PDF, l'ePub, etc. semblent rompus ou inexistants...

Philippe
St-Jean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2013, 08h27   #8
loufab
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 846
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 846
Points : 14 118
Points : 14 118
Merci St-Jean !

En effet les liens sont rompus , je règle ça ce week-end.
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2013, 19h20   #9
Phil43
Invité régulier
 
Homme philippe barriol
Inscription : janvier 2013
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme philippe barriol
Localisation : France, Haute Loire (Auvergne)

Informations forums :
Inscription : janvier 2013
Messages : 11
Points : 6
Points : 6
Bonjour,

Tout d'abord merci pour tous vos tutos qui permettent de bien progresser...surtout quand on part de zero....

Cet-fois-ci je bloque sur votre fonction fgAttache()

j'ai un erreur : 3276 référence d'objet de base de données incorrecte.
au niveau de la ligne :

For Each tbl In db.TableDefs


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
Function fgAttache() As String
'--------------------------------------------------------------------------------
' Procedure : pgAttache
' Author    : Fabrice CONSTANS (MVP)
' Date      : 18 / 07 / 2012
' Purpose   : Procédure standard d'attachement des tables
'               Vérifie l'attachement ou le refait
' Parametres: Utilise strlstTable qui contient les tables
'                     strFichierData qui contient le fichier des tables
' Return    : chemin de la dorsale
'----------------------------------------------------------------------------------
'
   On Error GoTo err_demarrage
 
    Dim db As DAO.Database
    Dim rst As DAO.Recordset        ' pour le test d'attache
    Dim lstTable() As String    ' contient les tables
    Dim i As Integer            ' the Compteur
    Dim tbl As DAO.TableDef
    Dim strChemin As String
    Dim eChemin As String
 
    eChemin = "C"
 
    ' utilise le chemin de la table des paramètres
      strChemin = CDropb.CheminPartage & strFichierData
    ' si le fichier Dorsal n'existe pas on le demande
    If Not FichierExiste(strChemin) Then
        MsgBox "La connexion à la base principale à échouée, " & vbCrLf & " Vous devez indiquer son nouvel emplacement.", vbInformation
        strChemin = SelectionFichier01
    Else
        strChemin = strChemin
    End If
 
    ' sauve le chemin dans la table des paramètres internes
    CDropb.CheminPartage = fFichierExt(strChemin, eChemin)
    ' si user local n'est pas user courant
   If CDropb.Occupe Then
        MsgBox "La base est actuellement utilisée par : " & CDropb.UtilisateurConnecte & vbCrLf & "Faites une tentative ultérieurement.", vbExclamation + vbOKOnly
        ' libération de la classe
        Set CDropb = Nothing
        DoCmd.Quit  'quitte l'application
    End If
    ' Création du fichier, réservation de l'application
    CDropb.CreerFichier
    ' à partir de là on commence les procédures d'attachement sur la dorsale
    lstTable = Split(strlstTable, ";")      ' la liste des tables à traiter
    Set db = CurrentDb
 
    For i = 0 To UBound(lstTable)           ' liste les tables et tente l'ouverture
        Set rst = db.OpenRecordset(lstTable(i), dbOpenSnapshot)
        rst.Close
        Set rst = Nothing
    Next
 
    db.TableDefs.Refresh
    If strChemin = "" Then
        strChemin = db.TableDefs(lstTable(0)).Connect
        strChemin = Right(strChemin, Len(strChemin) - InStr(1, strChemin, ";DATABASE=") - 9)
     End If
 
    fgAttache = fFichierExt(strChemin, eChemin)
 
    Exit Function
 
err_demarrage:
 
 If err.Number = 3078 Then  ' ne trouve pas la table
        Set tbl = db.CreateTableDef(lstTable(i))
        tbl.Connect = "MS Access;PWD=" & strPassWordBD & ";DATABASE=" & strChemin    'Me.CheminBD '";DATABASE=" &
        tbl.SourceTableName = lstTable(i)
        db.TableDefs.Append tbl
        db.TableDefs(tbl.Name).RefreshLink
        Resume
    End If
 
   For Each tbl In db.TableDefs
      If tbl.Attributes = dbAttachedTable Then
            tbl.Connect = "MS Access;PWD=" & strPassWordBD & ";DATABASE=" & strChemin
            db.TableDefs(tbl.Name).RefreshLink
      End If
    Next
    Resume
 
End Function
Si vous avez 2 min pour regarder ça.... je suis preneur.

Cordialement
Phil43 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2013, 20h20   #10
loufab
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 846
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 846
Points : 14 118
Points : 14 118
Bonjour et merci,

Essaye de faire une première attache des tables manuellement avec la base en local.

Ensuite déplace/renomme/supprime cette base et lance l'attache via la procédure.

Cordialement,
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2013, 21h23   #11
Phil43
Invité régulier
 
Homme philippe barriol
Inscription : janvier 2013
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme philippe barriol
Localisation : France, Haute Loire (Auvergne)

Informations forums :
Inscription : janvier 2013
Messages : 11
Points : 6
Points : 6
Re bonsoir,

En faisant un "glissé/copié" de la dorsale pour la changer de repertoire : j'ai le message d'erreur.

Mais en effet si je fais un copié/collé/suprimé tout marche très bien.

Vraiment bravo. Je n'y comprends rien mais bravo.

Concernant la détection des conflits (la encore je ne comprends pas l' idée du timer). Pourquoi ne pas mettre une détection unique à la fermeture et une à l'ouverture. Celle de l'ouverture avec un timer de" 15sec" le temps de synchronisation du fichier occupé et de la "création" de sa copie.

Encore une fois merci de nous faire partager votre " savoir" et surement passion

Cordialement
Phil43 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2013, 22h13   #12
Phil43
Invité régulier
 
Homme philippe barriol
Inscription : janvier 2013
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme philippe barriol
Localisation : France, Haute Loire (Auvergne)

Informations forums :
Inscription : janvier 2013
Messages : 11
Points : 6
Points : 6
Concernant mon erreur : 3276 référence d'objet de base de données incorrecte.
En faite si je change l'emplacement de la dorsale 1 fois ça marche. Mais la deuxieme fois ça met l'erreur. Une "variable,objet..." qui ne se réinitialise pas???

Cordialement.
Phil43 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2013, 09h38   #13
loufab
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 846
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 846
Points : 14 118
Points : 14 118
L'idée du Timer est de laisser le temps au cloud de créer les fichiers de données (du moins le nom du fichier). 15 sec est une valeur standard qui doit être réglé suivant le temps moyen constaté sur les postes et la taille de la base de données. On peut choisir de ne pas mettre de timer dans ce cas la detection du conflit ne sera pas faite.

Concernant ce comportement, j'ai eu ce problème une fois j'ai decompilé et ça a réglé le problème. Je ne m'explique pas pourquoi à un moment il n'a pas retrouvé la dp.
Essaye de supprimer carrèment les attaches et de laisser faire l'appli au démarrage.
loufab est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/01/2013, 16h11   #14
Phil43
Invité régulier
 
Homme philippe barriol
Inscription : janvier 2013
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme philippe barriol
Localisation : France, Haute Loire (Auvergne)

Informations forums :
Inscription : janvier 2013
Messages : 11
Points : 6
Points : 6
Bonjour,
Pour arriver à ce que vous m'avez conseillé, j'ai tout importé depuis une nouvelle base. Ca marche nickel..
Merci
Phil43 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2013, 10h58   #15
kazersoze
Invité de passage
 
Inscription : octobre 2012
Messages : 1
Détails du profil
Informations forums :
Inscription : octobre 2012
Messages : 1
Points : 1
Points : 1
Par défaut Tuto NICKEL

Bonjour,

Je suis entrain de jeter un coup d'oeil a ce tuto. Tres bien fait.
Serait-il possible de poster le fichier "AgaData01.accdb" en brut pour pouvoir debbuger mieux ma petite base.

Merci encore pour le tuto

@+
kazersoze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2013, 15h08   #16
loufab
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 846
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 846
Points : 14 118
Points : 14 118
agadata01.accdb n'est qu'un fichier de données, il contient des tables et rien de plus. Je ne vois pas ce qu'il t'apportera. Tu peux le remplacer par n'importe quel fichier de données protégé contenant des tables.
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2013, 15h59   #17
guen
Membre régulier
 
Homme Guenaël LE MERRER
consultant environnement et développement d'applications de base de données
Inscription : janvier 2006
Messages : 242
Détails du profil
Informations personnelles :
Nom : Homme Guenaël LE MERRER
Âge : 39
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : consultant environnement et développement d'applications de base de données
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : janvier 2006
Messages : 242
Points : 81
Points : 81
Par défaut fichier lock ldb

Bonjour et merci pour ce tuto et cette utilisation intéressante du cloud...
Une petite question tout de même, pourquoi vous n'utilisez pas le fichier lock classique d'access, le .ldb ? Car si on est connecté à la dorsale qui est dans un espace cloud, le ldb est automatiquement créé et du coup déployé. il suffit donc de vérifier à l'ouverture que ce fichier n'existe pas...
Et une autre question peut être...est-ce qu'il y a déjà des tutos qui ont été réalisés avec l'utilisation de SQL Azure avec une appli Access locale (et un mode mis en cache pour une utilisation hors connexion...). Je ne trouve pas grand chose là dessus (et le coût d'un hébergement SQL Azure...)
Merci

Guen
guen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2013, 17h15   #18
loufab
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 846
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 846
Points : 14 118
Points : 14 118
Bonjour,

Tu as raté le petit paragraphe IV-B.
[EDIT] On peut effectivement utiliser le fichier "lock" natif, cependant comme je le stipule dans le paragraphe indiqué, j'ai préféré utiliser un simple fichier texte, non pas que le lock ne permette pas de voir l'utilisateur connecté mais parce que cela m'aurait obligé à embarquer cette gestion. Ce qui n'est pas l'objet du tuto. Libre à toi d'utiliser la méthode que tu souhaites, seule la méthode compte. [\EDIT]

Pour Azure voir FMS inc ou gainingaccess.net. N'ayant pas l'accès ad-hoc sur Azure je n'ai pas pu tester cette solution. Espérons que cette année ça sera possible.

Le cout est à l'utilisation, donc difficile à déterminer avec précision.

Cordialement,
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h56.


 
 
 
 
Partenaires

Hébergement Web