Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

INDEXATION D'UNE BASE DE DONNÉES


Information sur la source

Catégorie :Base de Donnees Classé sous : index, indexation, base, donnees Niveau : Expert Date de création : 24/09/2000 Vu : 8 373

Note :
5,14 / 10 - par 7 personnes
5,14 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

Description

Evitez les doublons dans une base de données.
L'indexer est la méthode idéale pour ce faire.
 

Source

  • Function ListIndex() As Integer
  • Dim DB As Database
  • Dim WS As Workspace
  • Dim TBL As TableDef
  • Dim FLD As Field
  • Dim IDX As Index
  • Dim Dyn As Recordset
  • Dim I As Integer
  • Set WS = DBEngine.Workspaces(0)
  • Set DB = WS.CreateDatabase("AGENDA.MDB", dbLangGeneral)
  • Set DB = Workspaces(0).OpenDatabase("AGENDA.MDB")
  • Set TBL = DB.CreateTableDef("AGENDA")
  • 'Set Dyn = DB.OpenRecordset("SELECT Num FROM Agenda", dbOpenDynaset)
  • '============================================================
  • Set FLD = TBL.CreateField("Numéros", dbText, 14)
  • FLD.Required = True ' Les valeurs Null ne sont pas acceptées.
  • TBL.Fields.Append FLD
  • '-------------------------------------------------
  • Set FLD = TBL.CreateField("Noms", dbText, 30)
  • FLD.Required = True ' Les valeurs Null ne sont pas acceptées.
  • TBL.Fields.Append FLD
  • DB.TableDefs.Append TBL
  • '============================================================
  • ' Crée un index primaire pour ces deux champs.
  • Set IDX = TBL.CreateIndex("IDX")
  • IDX.Primary = True
  • IDX.Unique = True
  • '-----------------------------------------------
  • Set FLD = TBL.CreateField("Numéros")
  • ' N'indexe que ce champs pour ne pas avoir le même N°
  • IDX.Fields.Append FLD
  • 'Set FLD = TBL.CreateField("Noms")
  • ' N'indexe que ce champs pour ne pas avoir le même Nom
  • 'IDX.Fields.Append FLD
  • TBL.Indexes.Append IDX
  • '============================================================
  • ListIndex = True
  • End Function
  • Private Sub Form_Load()
  • If Err.Number = 53 Then GoTo suite ' Si le fichier Existe
  • Test = Dir(App.Path & "AGENDA.MDB")
  • If Test <> "" Then
  • Kill (App.Path & "AGENDA.MDB")
  • GoTo suite
  • End If
  • suite:
  • ListIndex
  • End Sub
Function ListIndex() As Integer

Dim DB As Database
Dim WS As Workspace
Dim TBL As TableDef
Dim FLD As Field
Dim IDX As Index
Dim Dyn As Recordset
Dim I As Integer

Set WS = DBEngine.Workspaces(0)
Set DB = WS.CreateDatabase("AGENDA.MDB", dbLangGeneral)

Set DB = Workspaces(0).OpenDatabase("AGENDA.MDB")
Set TBL = DB.CreateTableDef("AGENDA")
'Set Dyn = DB.OpenRecordset("SELECT Num FROM Agenda", dbOpenDynaset)
'============================================================
Set FLD = TBL.CreateField("Numéros", dbText, 14)
FLD.Required = True ' Les valeurs Null ne sont pas acceptées.
TBL.Fields.Append FLD
'-------------------------------------------------
Set FLD = TBL.CreateField("Noms", dbText, 30)
FLD.Required = True ' Les valeurs Null ne sont pas acceptées.
TBL.Fields.Append FLD

DB.TableDefs.Append TBL
'============================================================
' Crée un index primaire pour ces deux champs.
Set IDX = TBL.CreateIndex("IDX")
IDX.Primary = True
IDX.Unique = True
'-----------------------------------------------
Set FLD = TBL.CreateField("Numéros")
' N'indexe que ce champs pour ne pas avoir le même N°
IDX.Fields.Append FLD

'Set FLD = TBL.CreateField("Noms")
' N'indexe que ce champs pour ne pas avoir le même Nom
'IDX.Fields.Append FLD

TBL.Indexes.Append IDX
'============================================================
ListIndex = True
End Function

Private Sub Form_Load()
If Err.Number = 53 Then GoTo suite ' Si le fichier Existe
  Test = Dir(App.Path & "AGENDA.MDB")
       
       If Test <> "" Then
         Kill (App.Path & "AGENDA.MDB")
         GoTo suite
        End If

suite:
ListIndex
End Sub

 

Commentaires et avis

signaler à un administrateur
Commentaire de cumu le 16/09/2002 12:24:26

Il a oublié de dire de faire avant dans le menu de visual basic

Projet&gt;Références&gt;Microsoft DAO 3.6 ObjectLibrary

Cocher la ligne et faire OK (si vous ne trouvez pas exactement la meme version c'est pas grave)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

accedez a une base de donnees qui a un mot de passe [ par madhroub_fi_ro7ou ] je trouve pas la methode dont je pourrais y acceder a une base de donnees protege par un mot de passe, je voudrais y acceder a la base de donnees via BASE DE DONNEES : HELP ME PLEASE [ par YOYO292 ] J'ai un repertoire c:\Rep\Data\avec des fichiers mdb dedansj'ai une base de données c:\rep\bibilio.mdbavec une table reference avec deux champs : nom, Base de donnees [ par nad ] Voila, j'ai un probleme de vb:J'ai cree une interface graphique avec des libelles, des textBox et des boutonsles TextBox sont associe à la base de don base de donnees [ par dadapointcom ] comment calculer la somme totale d'un champ dans une base de donnee? mercidada... Enregistrement sur ACCESSSSSSSSSS [ par {-Yah!-} ] Voila, je voudrais que dans mon prog, tous soit enregistrer sur base de donnees, on m'as dit que c'etait possible et je voudrais savori comment!!en fa Lien vers aCCCces [ par {-Yah!-} ] Je desirerai que les utilisateurs d'un programme soit tous referencer dans une base de donnees access et que pour entrer sur le prog, l appli se conne Importer les donnees Excel a Access [ par mel ] Bonjour,Je un ensemble de fichiers excel que je dois importer un a un dans des differentes tables de ma base de donnees (Access).Mon probleme est que PB DE BASE DE DONNEES EN VB: URGENT !!!!!!! [ par metal.killer ] g réalisé uen aplication en vb ki gère des tables en DBF, mais g besoin de faire du traitement, c a dire d requetes, le plus pratique serait le SQL ma base de donnees avec ADO, ADOX, OLEDB, ODBC??????? [ par Andrea ] Je voudrais me connecter a une base de donnees SQL (situee sur un serveur distant SQLserver2000) a partir d'un programme VB, afin d'y effectuer des no base de donnees [ par nico ] j'ai le message d'erreur 'indice en dehors de la plage' comment puis je eviter ce type de message


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.