Indexation d'une base de données

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 406 fois - Téléchargée 70 fois

Contenu du snippet

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

Source / Exemple :


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

A voir également

Ajouter un commentaire Commentaires
Messages postés
27
Date d'inscription
dimanche 4 juin 2000
Statut
Membre
Dernière intervention
13 juillet 2007

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

Projet>Références>Microsoft DAO 3.6 ObjectLibrary

Cocher la ligne et faire OK (si vous ne trouvez pas exactement la meme version c'est pas grave)
que veux dire
erreur de compilation
type defini par l'utilisateur non défini sur un dim db as database

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.