Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Ερωτήματα ] Ενημέρωση ενός field πίνακα από 3 Rows άλλου πίνακα

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 17-05-10, 13:51
Όνομα: Στάθης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 30-03-2010
Περιοχή: Αθήνα
Μηνύματα: 4
Προεπιλογή Ενημέρωση ενός field πίνακα από 3 Rows άλλου πίνακα

Γειά σας

Έχω μία στήλη σε ένα πίνακα και θέλω τα περιεχόμενά της συνενώνοντάς να τα τοποθετήσω σε ένα πεδίο ενός άλλου πίνακα.

Π.Χ.

Στήλη Orders
2A
5A
1Ds

Με Concatenation να γίνουν (2A, 5A, 1Ds) και να κάνω update ένα field σε άλλο πίνακα.

Πως μπορώ να το επιτύχω αυτό;
Απάντηση με παράθεση
  #2  
Παλιά 17-05-10, 14:57
Όνομα: Σταύρος
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 11-05-2010
Μηνύματα: 13
Προεπιλογή

Καλησπέρα

έχω την εντύπωση ότι το concatenation δουλευει μόνο για ξεχωριστά πεδία της ίδιας εγγραφής και οχι διαφορετικών εγγραφών.

πχ

ονομα | επιθετο |πατρώνυμο
-------------------------------------------
George | Ioannou | Petros

όνομα&επίθετο&πατρώνυμο θα δώσει GeorgeIoannouPetros


Με εκτίμηση

Σταύρος
Απάντηση με παράθεση
  #3  
Παλιά 17-05-10, 15:06
Όνομα: Στάθης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 30-03-2010
Περιοχή: Αθήνα
Μηνύματα: 4
Προεπιλογή Ενημέρωση ενός field πίνακα από 3 Rows άλλου πίνακα

Σε ευχαριστώ για την απάντηση.
Αυτό που λές το γνωρίζω όμως εγώ έχω αυτό το πρόβλημα και δεν ξέρω με ποιόν τρόπο θα το λύσω. Ουσιαστικά οι 3 Rows πρέπει να μετατραπούν κατά κάποιον τρόπο σε μία Row με 3 fields και στην συνέχεια να γινει concatenation.
Απάντηση με παράθεση
  #4  
Παλιά 17-05-10, 15:15
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή

Καλημέρα και από μένα !
Στάθη, ο πίνακας έχει τρία (3) record ή έχει πολλά και θες ανα τριάδα να συμβεί αυτό που περιγράφεις ;
Φιλικά/ Νίκος Δ.
Απάντηση με παράθεση
  #5  
Παλιά 17-05-10, 15:25
Όνομα: Στάθης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 30-03-2010
Περιοχή: Αθήνα
Μηνύματα: 4
Προεπιλογή

Νίκο αυτή την στιγμή έχει 3 records.
Με ενδιαφέρει να γίνεται η εργασία για όσα records περιέχει αυτός ο πίνακας. Δεν θα υπάρχει διαχωρισμός σε τριάδες ή τετράδες.
Ο πίνακας αυτός γίνεται συνέχεια delete και ξαναδημιουργείται.

Με εκτίμηση
Στάθης
Απάντηση με παράθεση
  #6  
Παλιά 17-05-10, 16:52
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

Γεια σας!

Στάθη, Σταύρο, καλωσορίσατε στο φόρουμ!

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

Φυσικά, κάθε περεταίρω αυτοματισμός μέσω VBA δεν αποτελεί πρόβλημα.

Φιλικά

Τάσος
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb accConcantenate.mdb (240,0 KB, 110 εμφανίσεις)
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #7  
Παλιά 17-05-10, 17:26
Όνομα: Σταύρος
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 11-05-2010
Μηνύματα: 13
Προεπιλογή

Τελικά μόνο του σπανού τα γενιά δεν γίνονται.
Άψογος κώδικας, τελικά ποτέ δεν πρέπει να λες πριν δεις, μηδένα προ του τέλους μακάριζε!

Τους χαιρετισμούς μου!

Τελευταία επεξεργασία από το χρήστη serviceman : 17-05-10 στις 21:44.
Απάντηση με παράθεση
  #8  
Παλιά 18-05-10, 08:32
Όνομα: Στάθης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 30-03-2010
Περιοχή: Αθήνα
Μηνύματα: 4
Προεπιλογή

Σας ευχαριστώ πολύ όλους σας. Τελικά ήταν αυτό που ήθελα. Όλα τέλεια.

Με μεγάλη εκτίμηση

Στάθης
Απάντηση με παράθεση
  #9  
Παλιά 23-05-10, 11:36
Το avatar του χρήστη nisgia
Super Moderator
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 12-10-2009
Περιοχή: Ηγουμενίτσα
Μηνύματα: 161
Προεπιλογή

Καλημέρα σε όλους!

Με την ευκαιρία, να θυμίσω μια χρήσιμη για την περίπτωσή μας
και πολύ ευέλικτη μέθοδο του αντικειμένου ADODB.Recordset:
Τη μέθοδο GetString η οποία φαίνεται στο παρακάτω παράδειγμα:

(απαιτείται η αναφορά σε μια διαθέσιμη βιβλιοθήκη Microsoft AxtiveX Data Objects)
Κώδικας:
Function ConcatenateField( _
        cnn As ADODB.Connection, _
        strTable As String, _
        strField As String, _
        Optional strListSeparator = ";") As String

    Dim strTemp As String
    Dim rst As ADODB.Recordset

    On Error GoTo ExitHere
    If cnn.State = 1 Then
        Set rst = New ADODB.Recordset
        With rst
            .Open "Select [" & strField & "] " _
                    & "From [" & strTable & "] " _
                    & "Where [" & strField & "] Is Not Null", _
                    cnn, adOpenDynamic, adLockReadOnly

            If Not (.EOF And .BOF) Then
                strTemp = .GetString(, , , strListSeparator)
                If Len(strTemp) > 1 Then
                    strTemp = Left$(strTemp, Len(strTemp) - 1)
                    ConcatenateField = strTemp
                End If
            End If
            .Close
        End With
    End If
ExitHere:
    Set rst = Nothing
End Function
Η παραπάνω συνάρτηση, θα μας φανεί πολύ χρήσιμη σε περιπτώσεις όπως το γέμισμα
ενός χειριστηρίου λίστας με τα περιεχόμενα ενός πεδίου πίνακα.

Για παράδειγμα:
Κώδικας:
Private Sub Form_Load()
    Me.cboMyProducts.RowSource = ConcatenateField( _
            CurrentProject.Connection, "tblProducts", "fldProductName")
End Sub
Όπως πιθανότατα καταλάβατε, το όρισμα cnn, μπορεί να "βλέπει" σε οποιαδήποτε
προσπελάσιμη από την εφαρμογή μας βάση δεδομένων.

Τα λέμε!
Γιάννης
__________________
Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...!
-----------------------------------------------
Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης.
Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά!

Τελευταία επεξεργασία από το χρήστη nisgia : 23-05-10 στις 11:53.
Απάντηση με παράθεση
Απάντηση στο θέμα

Ετικέτες
concantenate field


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[ Ερωτήματα ] Ερώτημα με κριτήρια εγγραφές άλλου πίνακα kasampas Access - Ερωτήσεις / Απαντήσεις 2 15-04-16 10:58
[ Πίνακες ] Ενημέρωση ορισμένων στηλών (βάρδιες) ενός πίνακα από άλλο (με ημερομηνίες από/έως) jim67 Access - Ερωτήσεις / Απαντήσεις 5 09-01-16 21:15
[ Πίνακες ] Τιμή Πεδίου ίση με πεδίο άλλου πίνακα gaz_manos Access - Ερωτήσεις / Απαντήσεις 6 25-01-13 12:41
[Συναρτήσεις] Ενημέρωση μιας λίστας από μια άλλη λίστα ενός άλλου φύλλου εργασίας labpanag Excel - Ερωτήσεις / Απαντήσεις 2 06-12-12 17:14
[ Πίνακες ] Ενημέρωση δεδομένων πίνακα από άλλο πίνακα ΚΩΣΤΑΣ2 Access - Ερωτήσεις / Απαντήσεις 2 27-04-11 12:50


Η ώρα είναι 08:26.