tab0u Δημοσ. 30 Δεκεμβρίου 2007 Δημοσ. 30 Δεκεμβρίου 2007 Καλημέρα παίδες και χρόνια πολλά! Έχω ένα πρόβλημα με μία εργασία στην Vb.Δεν θέλω να μου δώσετε την λύση της εργασίας ,απλά μία βοήθεια σε συντακτικό λάθος. Λοιπόν θέλω να περνάω τα περιεχόμενα μιας βάσης σε ένα txtBox.Γνωρίζω ότι γίνεται από το παράθυρο Properties με τα πεδία DataSource και DataField αφού έχω δημιουργήσει datacontrol. Το πρόβλημα μου είναι ότι θέλω να τα ορίσω μέσω κώδικα και όχι από τα Properties.Οπότε έχω γράψει τα εξής: Private Sub Form_Load() Set txtContID.DataSource = "Data1" <-** txtContID.DataField = "[Contact ID]" Set txtLastName.DataSource = "Data1" txtLastName.DataField = "[Last Name]" Set txtFirstName.DataSource ="Data1" txtFirstName.DataField = "[First Name]" Set txtPhone.DataSource ="Data1" txtPhone.DataField = "Phone" End Sub Το θέμα είναι ότι πρέπει να γράφω κάτι λάθος διότι μου βγάζει μήνυμα "Object Recuired" και μου τονίζει το σημείο που σας δείχνω με **
vagpap Δημοσ. 30 Δεκεμβρίου 2007 Δημοσ. 30 Δεκεμβρίου 2007 Η DataSource property του TextBox "κοιτάει" σε κάποιο Data control που έχεις φτιάξει. Συνεπώς για αρχή, αν δεν κάνω λάθος, δεν ορίζεις String με το όνομά του αλλά το ίδιο το control, το οποίο πρέπει να υπάρχει πριν το καλέσεις. Σε ποιά φάση το δημιουργείς το Data control σου? Αν ήδη έχει φτιαχτεί στη φάση που κάνεις load τη φόρμα σου έχει καλώς, εναλλακτικά θα πρέπει να το ορίσεις εσύ.
isim Δημοσ. 30 Δεκεμβρίου 2007 Δημοσ. 30 Δεκεμβρίου 2007 Υποθετω οτι εχεις πεταξει πανω στην φορμα ενα data control που εχει το ονομα Data1...Αυτο που χρειαζεται να κανεις ειναι πολυ απλο, βγαλε τα quotes για να περνας στο DataSource property το Data Control Object και οχι String οπως κανεις τωρα π.χ. Set txtContID.DataSource = Data1 Ελπιζω να βοηθησε Και χρονια πολλα σε ολους
tab0u Δημοσ. 31 Δεκεμβρίου 2007 Μέλος Δημοσ. 31 Δεκεμβρίου 2007 Όντως έχω πετάξει πάνω στη φόρμα ένα data control με όνομα Data1.Δοκίμασα αυτό που μου προτείνεις φίλε isim αλλά μου βγάζει μήνυμα λάθους"type mismatch". Μήπως πρέπει να δηλώσω κάπως το Data1 όπως προτείνει ο vagpap? Ευχαριστώ για τις απαντήσεις σας!
isim Δημοσ. 31 Δεκεμβρίου 2007 Δημοσ. 31 Δεκεμβρίου 2007 Ανεβασε καπου το project να το δουμε. Και καλη χρονια σε ολους
tab0u Δημοσ. 1 Ιανουαρίου 2008 Μέλος Δημοσ. 1 Ιανουαρίου 2008 Ευχαριστώ πολύ για την βοήθεια!Καλή χρονιά σε όλους και από μένα! το project: http://www.mediafire.com/?1dmdd0xryji
isim Δημοσ. 2 Ιανουαρίου 2008 Δημοσ. 2 Ιανουαρίου 2008 Βρηκα αυτο στο MSDN: Note Two older controls, the Data control and RemoteData control, can be used as data sources, however you cannot set the DataSource property of another control or object to either of these controls at run time. For example, the following code will fail: Set Text1.DataSource = Data1 ' Will fail! You can't set DataSource at ' run time to an intrinsic Data control. To use either the Data control or RemoteData control as a data source, you can set the DataSource property of bound controls at design time only. οποτε αυτο που θες δεν γινεται
tab0u Δημοσ. 2 Ιανουαρίου 2008 Μέλος Δημοσ. 2 Ιανουαρίου 2008 Ωχ δεν το ήξερα!Να σαι καλά isim!Με γλύτωσες από πονοκέφαλο ημερών.Ευχαριστώ πολύ! EDIT:Δεν ξέρω αν ισχύει αυτό που βρήκα,δεν το δοκίμασα ακόμη. Visual Basic 6 is the first VB version that lets you programmatically change the DataSource property at runtime, for example to point to another ADO Data control or another ADO Recordset. However, when you assign the new DataSource property VB immediately checks that the DataField and DataMember properties are valid. This means, for example, that if the new data source doesn't expose a field with the same name as the current value of the DataField property, you get error Error 545 - Unable to bind to field or DataMember: 'fieldname'. Fortunately, you can work around this problem by simply setting the FieldName property to a null string before setting the DataSource property, and then assign it the new value: ' have Text1 point to another Data control Text1.DataField = "" Set Text1.DataSource = Adodc2 Text1.DataField = "City" όχι οτι με βοηθάει στη εργασία μου αλλά ίσως τελικά να μπορεί να γίνει η αλλαγή data control σε χρόνο εκτέλεσης Edit2: Ξέρω οτι αρχίζω και γίνομαι ενοχλητικός,αλλά δεν με βοηθάει η ασχετοσύνη μου Πλέον έχω το εξής πρόβλημα στον ακόλουθο κώδικα(τα αντίστοιχα DataSource είναι ορισμένα από properties): Option Explicit Private Sub Form_Load() Data1.DatabaseName = "D:\Program Files\Microsoft Visual Studio\VB98\Contacts.mdb" Data1.RecordSource = "Contacts" Data1.Refresh txtContID.DataField = "Contacts.[Contact ID]" txtLastName.DataField = "Contacts.[Last Name]" txtFirstName.DataField = "Contacts.[First Name]" txtPhone.DataField = "Contacts.[Phone]" End Sub Όταν προσπαθώ να το τρέξω μου εμφανίζει το εξής: "Unable to bind to field or DataMember:'Contacts.[Contact ID]' "
tab0u Δημοσ. 6 Ιανουαρίου 2008 Μέλος Δημοσ. 6 Ιανουαρίου 2008 Κανένας δεν ξέρει παιδιά?Βοηθήστε σας παρακαλώ,την τετάρτη παραδίδω την εργασία!!!
sotospez Δημοσ. 7 Ιανουαρίου 2008 Δημοσ. 7 Ιανουαρίου 2008 Set txtContID.DataSource = Data1.Database txtContID.DataField = "[Contact ID]" Set txtLastName.DataSource = Data1.Database txtLastName.DataField = "[Last Name]" Set txtFirstName.DataSource = Data1.Database txtFirstName.DataField = "[First Name]" Set txtPhone.DataSource = Data1.Database txtPhone.DataField = "[Phone]" des an sou pezi etsi
tab0u Δημοσ. 8 Ιανουαρίου 2008 Μέλος Δημοσ. 8 Ιανουαρίου 2008 Φίλε sotospez καταρχάς σε ευχαριστώ για το ενδιαφέρον και την βοήθεια. Μου βγάζει μήνυμα λάθους "type mismatch" τονίζοντας μου το Data1.Database με κίτρινο χρώμα.
Acid_raiN Δημοσ. 9 Ιανουαρίου 2008 Δημοσ. 9 Ιανουαρίου 2008 Άμα θέλεις απλα να εμφανίσεις τα περιεχομενα δοκίμασε αυτο: Private Sub Form_Load() Data1.DatabaseName = "D:\Program Files\Microsoft Visual Studio\VB98\Contacts.mdb" Data1.RecordSource = "Contacts" Data1.Refresh txtContID.text = data1.recordset!contactID txtLastName.text = data1.recordset!Last Name txtFirstName.text = data1.recordset!First Name txtPhone.text = data1.recordset!Phone End Sub Αυτό πρέπει να εμφανίζει τα περιεχόμενα της πρώτης εγγραφης του recordset. Δεν νομίζω να μπορείς να τα κάνεις edit ομως έτσι.
sotospez Δημοσ. 9 Ιανουαρίου 2008 Δημοσ. 9 Ιανουαρίου 2008 dokimase ayto etsi to kanei kai i microsoft sta sample tis --> "Listcmbo" tora ama thes na to kaneis me kodika bale kalitera adodc kai oxi data1 SqlProject.zip
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.