FREEACCESS : CLONE DU LOGICIEL ACCESS

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 31 août 2005 à 09:04
psykocrash Messages postés 240 Date d'inscription vendredi 14 juin 2002 Statut Membre Dernière intervention 17 mars 2009 - 6 nov. 2006 à 20:58
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/33549-freeaccess-clone-du-logiciel-access

psykocrash Messages postés 240 Date d'inscription vendredi 14 juin 2002 Statut Membre Dernière intervention 17 mars 2009
6 nov. 2006 à 20:58
C'est presque trop facile en .net :p

Un premier jet : http://www.vbfrance.com/code.aspx?ID=40228
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
2 nov. 2006 à 19:28
Ton propre moteur de base de données ???? Crois moi, laisse tomber cette idée de suite ! Tu ne t'imagine pas la compléxité de la chose : gestion des accès concurrents, optimisation de la lecture de fichier séquentiels, reprise sur panne, etc.
Bref, il vaut mieux que tu passe plus de temps sur ton freeaccess plutôt que de t'arracher les cheveux sur un moteur de bdd !
psykocrash Messages postés 240 Date d'inscription vendredi 14 juin 2002 Statut Membre Dernière intervention 17 mars 2009
2 nov. 2006 à 18:42
J'ai laissé tomber le vb6 et je commence le dotnet. A votre avis, il vaut mieux refaire FreeAccess en VB.NET ou créer mon propre moteur de bases de données ?
cs_jolicoeur79 Messages postés 62 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 1 avril 2018 1
2 nov. 2006 à 03:03
bon travaille
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
8 sept. 2005 à 22:12
Moi je trouve que ça peut etre utile. Je met un 10 juste pour remonter un peu la moyenne.

On ne descend personne quand on a pas mieux a proposer.
A bon entendeur...
jpvb03 Messages postés 3 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 8 septembre 2005
8 sept. 2005 à 21:58
Je ne peu plus pubillier mes sourses quars je commercialise mon logiciel et la concurence est trés dure ;-((
CORDIALEMENT A TOUS, JPVB03
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
8 sept. 2005 à 21:46
@JPVB03 : Ton code n'a rien d'exceptionnel, tu ferais mieux de mettre une source digne de toi et le laisser à l'apprréciation de tous.

@psykocrash : C'est très bien ce que tu as fait, y'a beaucoup qui le trouveront utile, bon courage.
jpvb03 Messages postés 3 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 8 septembre 2005
8 sept. 2005 à 21:35
Bonsoir,
J'ai donné une premiére note quard tu n'étais pas noté ! ;-)
un infime apperçus de code pour gérer des données d'access en VB6
en locurence pour une gestion commerciale donc le codes pésent aux bas-mots 9 904 128 octets soit 5 ans de travail seul
Bon courage JP

Private Sub Command2_Click()

If SSTab1.Tab "0" Then b$ "*"
If SSTab1.Tab "1" Then b$ "DEV"
If SSTab1.Tab "2" Then b$ "BDC"
If SSTab1.Tab "3" Then b$ "BDL"
If SSTab1.Tab "4" Then b$ "FAC"
If SSTab1.Tab "5" Then b$ "AVO"
If SSTab1.Tab "6" Then b$ "DDT"
If SSTab1.Tab "7" Then b$ "BCF"

REQSQL = "Select [No],[Piece],[champ0],[Base],[CLI]," 'Début de commande
For i = 0 To lstFields.ListCount - 1 'Boucle
If lstFields.Selected(i) = True Then
REQSQL = REQSQL & "[" & lstFields.List(i) & "]," 'Ajout
CMt$ = CMt$ & " " & lstFields.List(i) & " Like'" + "*" + Me.txtrecherche + "*" + "' or"
End If
Next i
If REQSQL = "Select" Then Exit Sub 'Si rien sélectionné
REQSQL = Left$(REQSQL, Len(REQSQL) - 1) 'Enlève la virggule finale
If CMt$ = "" Then GoTo saut1
CMt$ = Left$(CMt$, Len(CMt$) - 2)

If Me.txtrecherche = "" Then
If Check1.Value 1 Then REQSQL REQSQL & " From [Documents] WHERE DOC Like'" + b$ + "*" + "' AND CLI Like'" + Me.Label7 + "'" + " ORDER BY " + Combo1 + " "
If Check1.Value 0 Then REQSQL REQSQL & " From [Documents] WHERE DOC Like'" + b$ + "*" + "' AND CLI Like'" + Me.Label7 + "'" + " ORDER BY " + Combo1 + " " + "DESC" + ""

Else

If Check2.Value = 1 Then
If Check1.Value 1 Then REQSQL REQSQL & " From [Documents] WHERE" & CMt$ & "Like '" + Me.txtrecherche + "*" + "' AND DOC Like'" + b$ + "*" + "' AND CLI Like'" + Me.Label7 + "'" + " ORDER BY " + Combo1 + " "
If Check1.Value 0 Then REQSQL REQSQL & " From [Documents] WHERE" & CMt$ & "Like '" + Me.txtrecherche + "*" + "' AND DOC Like'" + b$ + "*" + "' AND CLI Like'" + Me.Label7 + "'" + " ORDER BY " + Combo1 + " " + "DESC" + ""
Else
If Check1.Value 1 Then REQSQL REQSQL & " From [Documents] WHERE " + Combo1 + " Like '" + Me.txtrecherche + "*" + "' AND DOC Like'" + b$ + "*" + "' AND CLI Like'" + Me.Label7 + "'" + " ORDER BY " + Combo1 + " "
If Check1.Value 0 Then REQSQL REQSQL & " From [Documents] WHERE " + Combo1 + " Like '" + Me.txtrecherche + "*" + "' AND DOC Like'" + b$ + "*" + "' AND CLI Like'" + Me.Label7 + "'" + " ORDER BY " + Combo1 + " " + "DESC" + ""

End If

End If

Me.Data2.RecordSource = REQSQL 'Requête d'affichage
On Error Resume Next
Me.Data2.Refresh 'Mise à jour



retourindexgrid = SSTab1.Tab


Me.DBGrid1(retourindexgrid).ReBind 'Actualisation de la grille
Me.DBGrid1(retourindexgrid).Columns(0).Visible = False
Me.DBGrid1(retourindexgrid).Columns(1).Visible = False
Me.DBGrid1(retourindexgrid).Columns(2).Visible = False
Me.DBGrid1(retourindexgrid).Columns(3).Visible = False
Me.DBGrid1(retourindexgrid).Columns(4).Visible = False
Me.DBGrid1(retourindexgrid).Columns(5).Visible = False

'' MET A JOUR L'INTITULER DES COLONNES
saut1:

''-------------------------------------------------
Call ALLIGNEGRILLE

End Sub

CORDIALEMENT JP
psykocrash Messages postés 240 Date d'inscription vendredi 14 juin 2002 Statut Membre Dernière intervention 17 mars 2009
8 sept. 2005 à 20:35
Et c'est pour ça que tu notes 1/10 ? Désolé mais quand je travaillais sur ce projet mon objectif c'était de créer une classe très complete pour la gestion des databases Access (et autres en modifiant le ConnectString). Cette source mérite vraiment cette note ? elle ne sert donc à rien ? juste pour le fun : tu te base sur quels critères pour donner une note ? les couleurs ? la langue des menus ? lol. Ne donne pas une note juste pour donner une note. Moi a la limite je m'en fous des notes qu'on me donne sur vbfrance parce que dans 80% des cas ça vient de personnes qui ne sont pas qualifiées pour ça.
Have Fun !
jpvb03 Messages postés 3 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 8 septembre 2005
7 sept. 2005 à 23:09
Cher ami comme niveau d'expert on peu faire mieu,
opendata et flexgrid boffff !!
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
2 sept. 2005 à 12:12
@DARKSIDIOUS : si ta dll pour ACCESS est dispo en ligne, j'aimerais bien y jetter un coup d'oeil, mais en réalité le but aussi pour moi est de créer des formats perso.
Ce qui signifie que mes applis lisent la structure de la BD dans ma BD de formats perso (structure de bd du client), ce qui rendra l'interface unique pour tous le providers et la BD dependra de ce que dispose déjà le client (oracle, sql server, access, ...)

Asimengo
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
2 sept. 2005 à 11:43
En fait peut importe, en général quand je fais des appli utilisant une base ACCESS, je commence bien évidemement par créé la base. Et puis il arrive souvent que je la modifie car il y a des choses auxquelles on ne pense pas toujours. Et quand l'appli est terminée ma base (version finale) se retrouve avec pleins d'enregistrements.
Il est bien évidemment inutile de les supprimer car un champs en NuméroAuto ne recommencera jamais à partir de 1.
C'est pourquoi j'aimerai recrée la même base mais totalement vierge.
Effectivement la méthode d'ASIMENGO me parait très bien. Enfin si vous codez quelques chose la dessus faites le moi savoir.

Bouv
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
2 sept. 2005 à 11:35
Ben j'ai déjà fait des dll justement (uniquement pour Access car c'est le seul format qui m'interesse pour le moment) pour extraire les données des tables, et contruire un fichier propriétaire (format perso donc), et après, à partir de ce fichier, reconstruire la base de données d'origine, avec récupèration des valeurs s'il y a besoin.

Cela me permet surtout de mettre à jour la structures des bases de données des clients sans devoir remplacer les fichiers de bases directement.

IDEM, je suis en train de faire un générateur d'état pour qu'il fonctionne avec des fichiers propriétaires, et donc, proposer des impressions avec des présentations totalement différentes selon les clients tout en se basant sur les même recordset.

DarK Sidious
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
2 sept. 2005 à 11:26
@DARKSIDIOUS : Ouais, ce serait interessant un code permettant de reconstruire la structure de toutes les tables d'une base de données quelconque soit le provider. je suis preneur d'un tel code. Il generera un fichier ASCII avec les colonnes "Nom Table","fieldname","caption","ordinalposition","isrequired","isunique",... en bref les colonnes "nom table", [Field].properties(0).name, ...[Field].properties(n).name

Bien evidemenent qui tiendra compte du fait que les propriétés de table dependent du provider.

Avec ACCESS je pourrais essayer mais pour le reste DARKSIDIOUS le ferait mieux.

Asimengo
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
2 sept. 2005 à 11:13
Oui tout à fait, mais tu veux faire une base manuellement ou par programmation ?

Parce que si c'est manuellement, la méthode de Asimengo me paraît bonne et plus simple !

DarK Sidious
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
2 sept. 2005 à 11:08
ASIMENGO>>Ok merci pour cette astuces je vais essayer.

DARKSIDIOUS>>Tu parles de créé un code qui lise toutes le propriétés et reconstruise la BDD ?
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
1 sept. 2005 à 12:22
@BOUV : Bien sûr tu sélectionneras tous les objets de l'ancienne BD que que tu voudras importer, y compris relation, Menus, Paramètres Import/Export.

Asimengo
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
1 sept. 2005 à 12:18
@BOUV : Le mieux c'est de créer une nouvelle Base de données ACCESS vierge à partir d'ACCESS. Cliquer à droite sur "Tables" et sélectionner "Importer...", choisir votre base de données, cliquer sur "Opions >>", et sélectionner dans la zone "Importer les tables" l'option "Définition seulement".

Asimengo
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 sept. 2005 à 12:04
Oui, il suffit de lire les propriétés de chaque table, de chaque champs, etc. et de reconstruire la base à partir de cà.
Pour ce faire, il faut utiliser ADOX.

DarK Sidious
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
1 sept. 2005 à 11:59
Salut, j'ai une petite question.
Savez-vous comment on fait pour créer une base Access vierge de toute donnée à partir d'une base existante dans laquelle des enregistrements ont été faits, sans avoir à tout refaire manuellement ?
Merci d'avance

Sinon l'idée est bonne, continue comme ça.
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
31 août 2005 à 09:04
Pour un début c'est déjà très bien !

Bon il est encore loin d'égaler Access, il ne fait que les tables (ou du moins, je n'ai pas vu les report, les requêtes, etc.), mais c'est déjà pas mal.

Ca mériterai d'être repris par quelqu'un d'autres pour l'améliorer.

Dommage tout de même qu'il n'y ai pas le code pour créer une nouvelle table avec tout les champs car c'est le plus important et intéressant dans ce genre de logiciel (IDEM pour les report !).

Je suis actuellement en train de faire le même type de logiciel, sauf qu'il ne servira qu'à créer des tables/report, et les exporter dans des fichiers propriétaire pour ensuite pouvoir reconstruire une base de données en conservant les anciennes données, et en mettant à jour la structure de la base de données. La classe pour les tables fonctionne bien, et l'édition des états et quasiment terminé. Si ca t'interesse... (je ne le mettrais sûrement pas sur le site car je risque vendre le produit fini).

DarK Sidious
Rejoignez-nous