Parasight Δημοσ. 4 Δεκεμβρίου 2006 Δημοσ. 4 Δεκεμβρίου 2006 Έχω μια ερώτηση η οποία με καίει γιατί έχω ψιλοκολλήσει σε ένα project στη δουλειά, θα εκτιμούσα μια βοήθεια. Αν υποθέσουμε ότι RS είναι ένα recordset, ως γνωστόν χειριζόμαστε κάθε field ενός MS Access table αναφερόμενοι σε αυτό είτε ως RS.[<όνομα field>], είτε ως RS.fields(<αύξων αριθμός field>). Το ερώτημά μου είναι: Υπάρχει η δυνατότητα να κρατάω το <όνομα field> σε μια μεταβλητή ώστε να ελέγχω το εκάστοτε field με αυτόν τον τρόπο; Πχ έστω ότι ένα table έχει 3 πεδία τα οποία ονομάζονται αντίστοιχα Name, Address, Phone. Μπορώ να έχω μία μεταβλητή τύπου string της οποίας όταν η τιμή είναι "Name" να μπορώ να αναφερθώ στο field Name, κ.ο.κ.; Και πώς θα γίνει αυτό; Δεν είμαι σε καμία περίπτωση ο έμπειρος προγραμματιστής όπως καταλάβατε ε:neutral: edit: Άκυρο το παραπάνω αίτημα, βρήκα τη λύση "ανακαλύπτοντας" το property Name Τώρα όμως έχω ένα άλλο πρόβλημα: Παλεύω εδώ και ώρα χωρίς να τα καταφέρνω να προσθέσω fields στο table της Access. Προσοχή όχι records (γραμμές δλδ, με το AddNew), αλλά fields (στήλες). Έχω βρει και πειραματίζομαι εδώ και πολλή ώρα με την Fields collection του Recordset object αλλά δε βγάζω άκρη. Help please...
koYkoY_koYkoY Δημοσ. 4 Δεκεμβρίου 2006 Δημοσ. 4 Δεκεμβρίου 2006 Dim dbs As Database Dim fld As Field Dim tdf As TableDef Set dbs = CurrentDb Set tdf = dbs.TableDefs("ΌνομαΠίνακα") Set fld = tdf.CreateField("ΌνομαΠεδίου", dbText) tdf.Fields.Append fld Set fld = Nothing Set tdf = Nothing dbs.Close
gcapnias Δημοσ. 4 Δεκεμβρίου 2006 Δημοσ. 4 Δεκεμβρίου 2006 Η ερώτηση είναι αν προσπαθείς με την χρήση DAO ή με την χρήση ADO. Αν χρησιμοποιείς το DAO η προηγούμενη απάντηση είναι η σωστή. Αν όμως προσπαθείς να το κάνεις με ADO, αν και μπορείς να φτιάξεις δικά σου recordsets με το ADO, δεν μπορείς να αλλάξεις ένα πίνακα σε μια βάση έτσι. Θα πρέπει να κάνεις την χρήση του ADOX. George J.
Parasight Δημοσ. 5 Δεκεμβρίου 2006 Μέλος Δημοσ. 5 Δεκεμβρίου 2006 Dim dbs As DatabaseDim fld As Field Dim tdf As TableDef Set dbs = CurrentDb Set tdf = dbs.TableDefs("ΌνομαΠίνακα") Set fld = tdf.CreateField("ΌνομαΠεδίου", dbText) tdf.Fields.Append fld Set fld = Nothing Set tdf = Nothing dbs.Close Ευχαριστώ πολύ, δουλεύει μια χαρά Με τα table definitions δεν ήξερα πώς να το κάνω ακριβώς.. Btw εγώ ψάχνοντας χθες βρήκα και άλλον τρόπο, με εντολή SQL. Δηλαδή: commstring = "ALTER TABLE <όνομα recordset> ADD COLUMN " & <όνομα νέου field> & " YESNO;" DBchecklist.Execute commstring (το YESNO επειδή θέλω το field να είναι τύπου Yes/No) ...και μου δούλεψε μια χαρά. Αλλά μάλλον θα προτιμήσω τον τρόπο σου, μου φαίνεται πιο "ομαλός":)
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.