Avatar billede rad Nybegynder
05. november 2003 - 21:54 Der er 5 kommentarer og
1 løsning

Sletning af relationer mellem tabeller

Hej,
Et måske lidt mærkeligt spørgsmål. Jeg har en DB (Access97) med en række tabeller, hvor jeg selvfølgelighar oprettet relationer imellem via relationsbilledet.
Det gjorde jeg over flere omgange, men hver gang jeg åbnede relationsbilledet var relationerne væk, hvorfor jeg selvfølgelig oprettede dem igen - med det resultat, at der nu mellem nogle tabeller er oprettet den samme relation op til flere gange!

Spm. er nu: Hvordan pokker sletter jeg relationerne igen? Når jeg klikker på knappen der skulle vise relationerne, viser den ingen, eller kun en! Er der et andet billede end "Relationer" man kan vælge i access for at redigere relationer? eller...?
Avatar billede nih Novice
05. november 2003 - 22:46 #1
med DAO kan du slette alle relationer med denne kode:

Sub sletrel()

   
    Dim db As DAO.Database
    Set db = CurrentDb
    Dim rel As DAO.Relation

    For Each rel In db.Relations
        db.Relations.Delete rel.Name
    Next rel

End Sub

Niels
Avatar billede nih Novice
05. november 2003 - 22:49 #2
Der er KUN et billede med relationer, MEN hvis ikke alle tabeller er vist vises heller ikke relationerne.

Du kan få vist alle tabeller med relationer ved at højreklikke på baggrunden og vælge 'vis alle'

Niels
Avatar billede rad Nybegynder
05. november 2003 - 23:23 #3
Ahh, hvis jeg ved hvad relationerne hedder, så kan jeg vel egentlig overføre dette navn til programstump og slette dem derigennem!?
Du skulle vel ikke tilfældigvis have programmeret et par funktioner der lister alle relationer i en dialogboks, hvorfra man har mulighed for at vælge dem man gerne vil slette ;-) ?
Avatar billede nih Novice
06. november 2003 - 09:52 #4
en form med en liste og to knapper

Private Sub Form_Open(Cancel As Integer)
Me.fyldliste
End Sub

Private Sub Kommandoknap2_Click()
    CurrentDb.Relations.Delete Me.Liste0
    fyldliste
End Sub

Sub fyldliste()
    Dim db As DAO.Database
    Dim str
    Dim rel As DAO.Relation
    Set db = CurrentDb
    For Each rel In db.Relations
        str = str & rel.Name & "; "
    Next rel
    str = Mid(str, 1, Len(str) - 2)
    Debug.Print str
    Me.Liste0.RowSourceType = "Value List"
    Me.Liste0.RowSource = str
End Sub

Private Sub Kommandoknap3_Click()
fyldliste
End Sub
Avatar billede rad Nybegynder
06. november 2003 - 11:02 #5
Jeg lavede selv en form i nat - med en listbox (med tre felter) og kanp der sletter dem der er valgt - ellers tak for hjælpen, det var lige hvad jeg havde brug for for at blive sporet ind på en løsning - point er tildelt :-)
Avatar billede rad Nybegynder
06. november 2003 - 11:04 #6
Og så kan jeg se at din løsning er lidt mere simpel end min - der kunne jeg have sparet mig for en del frustrationer ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester