Jump to content



Βοήθεια για VBA...


..::LaLa::..

Recommended Posts

Δημοσιεύτηκε

Καλημέρα!

Έχει κάποιος την ευγενή καλοσύνη να μου πει τι λάθος κάνω???

Χμμ..αρχικά να αναφέρω ότι πρόκειται για μια εργασία της σχολής..

Η βάση είναι ένα φροντιστήριο μέσης εκπαίδευσης και μέσα στους άλλους υπάρχουν και 2 πίνακες(AREA,STUDENTS).Η φόρμα των STUDENTS έχει ένα πεδίο που κρατάει από τον πίνακα AREA μέσα σε ένα combo box,όλες τις περιοχές.

Αυτό που θέλω να καταφέρω είναι όταν ο χρήστης πάει να καταχωρήσει έναν καινούριο μαθητή και συνεπώς και την περιοχή του,αν η περιοχή που πάει να καταχωρήσει δεν υπάρχει στη λίστα,να βγαίνει ένα msgBox(Yes,No) και να τον ρωτάει αν θέλει να καταχωρήσει τη νέα περιοχή στη λίστα των περιοχών.

Βρήκα στο ιντερνετ τον εξής κώδικα:

Private Sub TE_AREA_NotInList(NewData As String, Response As Integer)

Dim strMessage As String

Dim pet As Database //όπου pet έχω βάλει db(αν&δε νομίζω ότι έχει σημασία αυτό)

Dim rstTypes As DAO.Recordset

Dim intOptions As Integer

Dim bytChoice As Byte

strMessage = " The area '" & NewData & _

"' you have entered, does not exist on the list.Would you like it to be added?"

intOptions = vbQuestion + vbYesNo

bytChoice = MsgBox(strMessage, intOptions, "Record Area")

If bytChoice = vbYes Then

Set pet = CurrentDb

Set rstTypes = pet.OpenRecordset("T_Area") //στην παρένθεση έχω βάλει "AREA"(ο πίνακάς μου)

rstTypes.AddNew

rstTypes!area = NewData //μετά το ! το άφησα όπως είναι γιατί δεν ξέρω τι είναι :p

rstTypes.Update

Response = acDataErrDisplay

End If

End Sub

Προφανώς για να γράφω εδώ σημαίνει ότι δε δούλεψε...

Στην αρχή,κάνοντας compile,μου έλεγε για το "Dim db As Database" ότι δεν είχε δηλωθεί.

Πήγα στα tools|preferences και επέλεξα DAO 3.6 library και ύστερα από αυτό δεν είχα κανένα compile error.Παρ'όλα αυτά και πάλι δε δούλευε...Έκανα άλλες 2 προσπάθειες με παρόμοιους κώδικες,αλλά και πάλι τζίφος...Με το που καταχωρώ όλα τα στοιχεία του μαθητή για την εγγραφή του + της περιοχής,και πάω να πατήσω add record,μου λέει ότι "You can't go to the specified record"...

Ξέρει κανείς τι μπορεί να φταίει???:cry:

’κυρο!! Το βρήκα!! :p

Δεν είχα βάλει στα properties, limit to list = Yes :p

Τώρα έχω ένα άλλο πρόβλημα...Χμμ...επειδή περνάω στα ελληνικά τις εγγραφές,μου βγάζει κάτι ??;?;?;??? τέτοια...και ούτε στον κώδικα μπορώ να γράψω ελληνικά.Ξέρει κανείς πως φτιάχνει αυτό????

Αρχική απάντηση από ..::LaLa::..

’κυρο!! Το βρήκα!! :p

Δεν είχα βάλει στα properties, limit to list = Yes :p

Τώρα έχω ένα άλλο πρόβλημα...Χμμ...επειδή περνάω στα ελληνικά τις εγγραφές,μου βγάζει κάτι ??;?;?;??? τέτοια...και ούτε στον κώδικα μπορώ να γράψω ελληνικά.Ξέρει κανείς πως φτιάχνει αυτό????

κωδικας στα ελληνικα απλα δεν υπαρχει.....

τσ τσ τσ θα το πω στους καθηγητες σου......

οσο για ελληνικα μαλλον ειναι θεμα εγκαταστασης windows κανονικα δεν θα στα εβγαζε...

στην σχολη απ οσο θυμαμε μια χαρα ηταν......

α ρε γυναικειο FORMAT.........

Δεν είπα ότι θέλω να γράψω κώδικα στα ελληνικά...........

Εκεί που γράφουμε τον κώδικα θέλω να γραψω ελληνικά,ώστε να βγαίνουν ελληνικά στο MsgBox.Όσο για τα Windows μου,μια χαρά είναι!!:p με τα ελληνικά δεν έχω κανένα άλλο πρόβλημα πουθενά.Λογικά κάτι πρέπει να ρυθμίζεις στην Access,που δεν ξέρω ;)

Sorry gia ta greeklish alla postaro apo linux.

Bale Eisagogika "ellinika"

an auto to kaneis tote sta settings tis VBA den exei epilexei elliniki gramatoseira

Αρχική απάντηση από ChrisXP

an auto to kaneis tote sta settings tis VBA den exei epilexei elliniki gramatoseira

:T: :T: :T: αυτο ηταν τελικα λαθος γραματοσειρα

Οκ, λύθηκε κι αυτό....

Χμμ...Σε μία φόρμα έχω περάσει όλα τα reports(σε listbox) και ο χρήστης έχει 2 επιλογές.

Να κάνει preview ή print ένα report.

Ορισμένα report χρειάζονται παραμέτρους(πχ από τη λίστα των μαθητών ή των καθηγητών).

Έχω βάλει σε comboboxes όλα τα στοιχεία που μπορεί να αποτελούν παραμέτρους.

Πώς θα συνδέσω τη listBox με τα comboboxes???

Αυτός είναι ο κώδικας που χρησιμοποιείται για τη listbox αλλα και τα κουμπιά(preview,print):

Private Sub Form_Load()

Dim objAO As AccessObject

Dim objCP As Object

Dim strValues As String

Set objCP = Application.CurrentProject

For Each objAO In objCP.AllReports

strValues = strValues & objAO.Name & ";"

Next objAO

List0.RowSourceType = "Value List"

List0.RowSource = strValues

End Sub

Private Sub ProcessReport(intAction As Integer)

If Not IsNull(List0) Then

DoCmd.OpenReport List0, intAction

End If

End Sub

Private Sub Label5_Click()

ProcessReport acViewPreview

End Sub

Private Sub Label6_Click()

ProcessReport acNormal

End Sub

Κανονικά μονό preview θες γιατί θα κάνει πριν από το preview με το menu bar

Όσο για τις παραμέτρους όταν πας να της άνοιξης τότε θα στις ζητάει.

εμένα η δική μου εργασία είναι εργασία!όχι αστεία:p έχει και print!!:p

εγώ θέλω πρώτα να επιλέγω τις παραμέτρους(από τα combo) και μετά να πατάει η print η preview...

Archived

This topic is now archived and is closed to further replies.

×
×
  • Δημιουργία...

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.