Εμφάνιση ενός μόνο μηνύματος
  #4  
Παλιά 08-08-11, 19:26
kapetang Ο χρήστης kapetang δεν είναι συνδεδεμένος
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα στην παρέα

Κωνσταντίνε, πραγματικά κάποιος που δεν έχει υπόψη του τα προηγούμενα μηνύματα είναι δύσκολο να αντιληφθεί τι ακριβώς θέλεις.
Για να πετύχεις το ζητούμενο, θα πρέπει να αλλάξεις το πεδίο «ID_ΗΘΟΠΟΙΟΥ» στον πίνακα «ΡΟΛΟΙ», ώστε να μη μπορεί να παίρνει πολλαπλές τιμές.
Αυτό θα αφαιρέσει από τη ΒΔ τη δυνατότητα ανάθεσης ενός ρόλου σε πολλούς ηθοποιούς, για να υπάρχει αντικαταστάτης σε περίπτωση κωλύματος του βασικού.
Για να κάνουμε την αλλαγή ακολουθούμε τα βήματα.
1. Για κάθε ενδεχόμενο, δημιουργία αντιγράφου ασφαλείας της ΒΔ.
2. Άνοιγμα της ΒΔ και με αντιγραφή και επικόλληση δημιουργία αντιγράφου του πίνακα «ΡΟΛΟΙ» με όνομα «ΡΟΛΟΙ2».
3. Άνοιγμα σε προβολή σχεδίασης του πίνακα «ΡΟΛΟΙ» και διαγραφή του πεδίου «ID_ΗΘΟΠΟΙΟΥ». Πιθανόν να χρειαστεί πρώτα η διαγραφή της σχέσης.
4. Προσθήκη πάλι του πεδίου «ID_ΗΘΟΠΟΙΟΥ» και στον τύπο δεδομένων επιλογή «Οδηγός αναζήτησης». Στον οδηγό δεν τσεκάρουμε το πλαίσιο «Εισαγωγή πολλών τιμών», ώστε όταν τον κλείσουμε η ιδιότητα του πεδίου «Δυνατότητα πολλών τιμών» να έχει τιμή: Όχι.
Μένει να αντιγράψουμε τις τιμές του πεδίου «ID_ΗΘΟΠΟΙΟΥ» από τον πίνακα «ΡΟΛΟΙ2» στο αντίστοιχο του πίνακα «ΡΟΛΟΙ».
Στη ΒΔ που επισυνάπτω, αν πατήσουμε το κουμπί «Αντιγραφή τιμών» της φόρμας «frmHelp» θα γίνει αυτόματα η αντιγραφή.
Η λειτουργικότητα του κουμπιού οφείλεται στον παρακάτω κώδικα:
Κώδικας:
Private Sub cmdUpdate_Click()
    Dim rsR1 As DAO.Recordset
    Dim rsR2 As DAO.Recordset
    Dim rst As DAO.Recordset
    Dim strSQL As String
    strSQL = "SELECT ΡΟΛΟΙ.ID_ΗΘΟΠΟΙΟΥ FROM ΡΟΛΟΙ ORDER BY ΡΟΛΟΙ.ID_ΡΟΛΟΥ;"
    Set rsR1 = CurrentDb.OpenRecordset(strSQL)
    strSQL = "SELECT ΡΟΛΟΙ2.ID_ΗΘΟΠΟΙΟΥ FROM ΡΟΛΟΙ2 ORDER BY ΡΟΛΟΙ2.ID_ΡΟΛΟΥ;"
    Set rsR2 = CurrentDb.OpenRecordset(strSQL)
    If rsR1.RecordCount > 0 Then
    rsR1.MoveFirst: rsR2.MoveFirst
        Do Until rsR1.EOF
            rsR1.Edit
            Set rst = rsR2!ID_ΗΘΟΠΟΙΟΥ.Value
            rsR1!ID_ΗΘΟΠΟΙΟΥ = rst.Fields(0)
            rsR1.Update
            rsR1.MoveNext: rsR2.MoveNext
        Loop
        rsR1.Close
        rsR2.Close
        MsgBox "Η ενημέρωση ολοκληρώθηκε"
    End If
End Sub
Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: accdb TheaterKon2.accdb (464,0 KB, 20 εμφανίσεις)
Απάντηση με παράθεση