Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Φόρμες ] Ενημέρωση πίνακα (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/2919-enimerosi-pinaka.html)

dimitris p 12-01-14 15:52

Ενημέρωση πίνακα
 
1 Συνημμένο(α)
Καλησπέρα σε όλους και καλή χρονιά.
Θα ήθελα την βοήθεια του φόρουμ σε κάτι το οποίο θέλω να κάνω.
Σε μια φόρμα Forma1 έχω δύο list box, στο αριστερό υπάρχουν ονόματα από τα οποία θέλω να επιλέγω κάποια από 1 έως 5 και στη συνέχεια πατώντας το κουμπί, τα επιλεγμένα ονόματα να καταχωρούνται σε 1 εγγραφή του πίνακα Ομάδες, ένα όνομα σε κάθε πεδίο με τυχαία σειρά τοποθέτησης ή αν γίνεται σε προκαθορισμένη θέση για κάθε επιλογή (π.χ. η 1η επιλογή να τοποθετείτε στο 2ο πεδίο , η 2η επιλογή στο τρίτο πεδίο κτλ.)
Ελπίζω να μπορεί να γίνει αυτό που ζητάω.
Επισυνάπτω το αρχείο για βοήθεια.

Ευχαριστώ πολύ.
Φιλικά Δημήτρης…

sarafis 13-01-14 01:11

1 Συνημμένο(α)
Δημήτρη καλημέρα
Δες το συνημμένο. Σίγουρα θα υπάρχει πιο εύκολος τρόπος, αλλά το θέμα είναι πως δουλεύει.

dimitris p 13-01-14 09:53

Καλημέρα σε όλους...
Στέλιο είδα την λύση που προτείνεις και σίγουρα κάνει την δουλειά που θέλω.
Τώρα για το αν υπάρχει πιο απλός τρόπος δεν ξέρω, αλλά και έτσι λειτουργεί.
Ευχαριστώ πολύ για την απάντηση.
Φιλικά Δημήτρης...

kapetang 13-01-14 15:33

1 Συνημμένο(α)
Καλησπέρα στην παρέα

Και μια άλλη υλοποίηση.

Φιλικά/Γιώργος

dimitris p 14-01-14 12:47

Καλημέρα σε όλους.
Γιώργο είδα την πρότασή σου και ευχαριστώ για το χρόνο σου.

Φιλικά Δημήτρης...

Χρήστος 17-01-14 13:04

Για όποιον "αρέσκεται" να διαβάζει γραμμή-γραμμή τον κώδικα αναφέρω τα εξής:
Στην ιδιαίτερη λύση που πρότεινε ο Γιώργος(Kapetang)
διαπίστωσα ότι στον κώδικα μπορούν να γίνουν 2 αλλαγές: (οι θέσεις σημειώνονται με >>)
.................................................. .................................................. ..............................................
Dim strSQL As String, Itm As Variant, i As Integer, strP As String, strV As String
With Me.Lista0
If .ItemsSelected.Count > 0 And .ItemsSelected.Count <= 5 Then
strSQL = "INSERT INTO omades("
For Each Itm In .ItemsSelected
i = i + 1
strP = strP & ", Pedio" & i
>> strV = strV & "', '" & .Column(1, Itm)
-μετά το 1ο κόμμα υπάρχει κενό
-σχηματίζει την παράσταση: ', 'Γιώργος', 'Χρήστος', 'Τάσος
Next
>> strSQL = strSQL & Mid(strP, 2) & ") VALUES (" & Mid(strV, 4) & "')"
-βάζει 4 διότι αριστερά του 'Γιώργος' υπαρχουν 3 χαρακτήρες που ΔΕΝ πρέπει να εισαγχθούν στην VALUES
-στο τμήμα με την VALUES την μετατρέπει στην επιθυμητή: 'Γιώργος','Χρήστος','Τάσος'
CurrentDb.Execute (strSQL)
Me.Lista2.Requery
Else
MsgBox "Πρέπει να επιλέξετε ένα έως πέντε ονόματα"
End If
End With
.................................................. .................................................. ..............................................
Άρα λοιπόν στην strV = strV & "', '" & .Column(1, Itm) αν διαγράψουμε το κενό μετά το 1ο κόμμα τότε στην strSQL = strSQL & Mid(strP, 2) & ") VALUES (" & Mid(strV, 4) & "')" το 4 θα πρέπει να γίνει 3

kapetang 17-01-14 18:47

Καλησπέρα

Χρήστο, χαίρομαι που ψάχνεις τον κώδικα ....

Παρακάτω δες μια τροποποίηση της μεθόδου που πρότεινε ο Στέλιος.

Κώδικας:

Private Sub CmdAdd_Click()
    Dim Itm As Variant, i As Integer, rs As DAO.Recordset
    Dim x As Variant
    x = Array("Pedio1", "Pedio2", "Pedio3", "Pedio4", "Pedio5")
    With Me.Lista0
        If .ItemsSelected.Count > 0 And .ItemsSelected.Count <= 5 Then
            Set rs = CurrentDb.OpenRecordset("Omades", dbOpenDynaset)
            rs.AddNew
            For Each Itm In .ItemsSelected
                rs.Fields(x(i)).Value = .Column(1, Itm)
                i = i + 1
            Next
            rs.Update
            rs.Close
            Set rs = Nothing
            Me.Lista2.Requery
        Else
            MsgBox "Πρέπει να επιλέξετε ένα έως πέντε ονόματα"
        End If
    End With

End Sub

Φιλικά/Γιώργος

Χρήστος 17-01-14 19:22

Σε ευχαριστώ πολύ Γιώργο, εκτιμώ το ενδιαφέρον σου να δω και μια ακόμη προσέγγιση.


Η ώρα είναι 16:01.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2