Forum

Αναζήτηση στο ms-office.gr

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

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 17-05-10, 12: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, 13:57
Το avatar του χρήστη serviceman
Όνομα: Σταύρος
Έκδοση λογισμικού Office: Ms-Office 2000
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 10-05-2010
Μηνύματα: 15
Προεπιλογή

Καλησπέρα

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

πχ

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

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


Με εκτίμηση

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

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

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

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

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

Γεια σας!

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

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

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

Φιλικά

Τάσος
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb accConcantenate.mdb (240,0 KB, 60 εμφανίσεις)
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word
Απάντηση με παράθεση
  #7  
Παλιά 17-05-10, 16:26
Το avatar του χρήστη serviceman
Όνομα: Σταύρος
Έκδοση λογισμικού Office: Ms-Office 2000
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 10-05-2010
Μηνύματα: 15
Προεπιλογή

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

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

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

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

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

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

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

Με την ευκαιρία, να θυμίσω μια χρήσιμη για την περίπτωσή μας
και πολύ ευέλικτη μέθοδο του αντικειμένου 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 στις 10:53.
Απάντηση με παράθεση
Απάντηση στο θέμα

Ετικέτες
concantenate field

Εργαλεία Θεμάτων
Τρόποι εμφάνισης

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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[ Φόρμες ] Ενημέρωση Πίνακα από Φόρμα marpapa Access - Ερωτήσεις / Απαντήσεις 5 12-09-11 21:58
[VBA] Αυτόματη ενημέρωση πίνακα skapet155 Excel - Ερωτήσεις / Απαντήσεις 14 18-08-11 07:05
[ Πίνακες ] Ενημέρωση δεδομένων πίνακα από άλλο πίνακα ΚΩΣΤΑΣ2 Access - Ερωτήσεις / Απαντήσεις 2 27-04-11 11:50
Έλεγχος των πεδίων ενός πίνακα stavros Access - Ερωτήσεις / Απαντήσεις 3 02-12-09 11:51
Διάβασμα τιμής απο πεδίο του 1ου Record ενός πίνακα - DAO Meteora Access - Ερωτήσεις / Απαντήσεις 1 10-04-09 13:25


Η ώρα είναι 17:50.