| Visual Basic for Applications (VBA) Ερωτήσεις / Απαντήσεις σε σχέση με τη χρήση της VBA. |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
|
#1
| |||
| |||
|
Καλησπέρα σε όλους Επανερχομαι με δύο ίσος λίγο δύσκολα ερωτήματα.. λοιπόν... π.χ dim Pedio1 as string , pedio2 as string κλπ Κανω μια εκτύπωση απο κώδικα με τον εξής παρακάτω κώδικα open (ΟνομαΕκτυπωτή) for output as # 1 print #1 , " " & pedio1 & " " & pedio2 & vbcr print #1 , " " & vbcr print #1 , " " & vbcr close #1 Το πρώτο ερώτημα είναι το εξής.. Εγώ για να μπορέσω να εκυπώσω σε προτυπομένο χαρτι αναγκάζομε και του δινω κενά δλδ Εστω οτι το pedio1 στον κώδικα το έχω όρισει να καταλαμβάνει το μέγιστο 7 χαρακτήρες και το πεδιο αυτό δεν έχει χαρακτήρες καταχωρημένους σε κάποια εγγραφή, τότε εγώ προσθέτο κενούς χαρακτήρες προκειμένου να μην μου ξεφήγουν οι εκτυπωτικές γραμμές.. Υπάρχει κάποια εντολή προκειμένου ο εκτυπωτής να το προσπερνά ότα είναι εντελοσ κενό το πεδίο αλλά χωρίς να χάνει τις εκτυπωτικές γραμμές.. ? Ερώτημα Δεύτερο.. Πώς μπορώ σε ένα ερώτημα SQL να του ορίσω ότι..! Εάν το πεδίο έχει 4 χαρακτήρες και εγω το έχω ορίσει για 7 να μου συπληρώσει τα υπόλοιπα έως τους 7 με κενά? πχ. κωδικός πελάτη (7 χαρακτ θέλω να πάρω εγώ..!) αλλα μου φέρνει 5 δλδ 10500 γιατι ετσι ειναι καταχωρημένο. Τώρα κάνω το εξής IsNull(left(kodikos;7) ' ') έτσι ομως συμπληρώνει με 7 κενούς χαρακτήρες μόνο όταν ειναι η τιμή null Εαν το πεδίο έχει δεδομένα και ειναι λιγότερα του 7 υπάρχει τρόπος να τα συπμληρώνει ? Γιώργος.. Τελευταία επεξεργασία από το χρήστη gr8styl : 08-01-10 στις 22:38. Αιτία: Πρόσθεση προθέματος |
|
#2
|
|
Γιώργο καλημέρα! Μ αυτό τον τρόπο, μπορείς να προσθέσεις τα κενά στα πεδία σου έτσι που το σύνολο των χαραχτήρων τους να είναι πάντα 7: Κώδικας: Option Compare Database
Option Explicit
Const FieldLen% = 7 ' Μήκος πεδίου - προσάρμοσε το κατάλληλα.
Sub PrintTest()
Open "LPT.txt" For Output As #1 '"LPT.txt"
Print #1, Chr(vbKeySpace) & PrintWithSpaces(Nz(Pedio1, vbNullString)) & _
Chr(vbKeySpace) & PrintWithSpaces(Nz(Pedio2, vbNullString)) & vbCr
Print #1, Chr(vbKeySpace) & vbCr
'.......
'.......
Close #1
End Sub
Private Function PrintWithSpaces(s$) As String
PrintWithSpaces = s & _
IIf(Len(s) > FieldLen, _
vbNullString, _
String(FieldLen - Len(s), Chr(vbKeySpace))) '
'Debug.Print Len(PrintWithSpaces)
'PrintWithSpaces = s & _
IIf(Len(s) > FieldLen, _
Left(s, FieldLen), _
String(FieldLen - Len(s), Chr(vbKeySpace)))
' Περιορίζει τους χαραχτήρες στους 7. Xρησιμοποίησε το αν το μήκος των χαραχτήρων υπερβαίνει το 7.
End Function
Όσο για τα κενά στην SQL δεν θα σου το συνιστούσα. Με τον τρόπο αυτό προκληθούν αρκετές δυσλειτουργίες και ασυμβατότητες στη βάση με αποτέλεσμα να μη λειτουργήσουν κώδικες και ερωτήματα που ίσως σχετίζονται από το πεδίο αυτό. Εκτός αυτού, η μορφοποίηση της στήλης αυτής θα πρέπει να επιτρέπει την προσθήκη χαραχτήρων κειμένου. Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word Τελευταία επεξεργασία από το χρήστη Tasos : 02-12-09 στις 06:23. |
|
#3
| |||
| |||
|
Καλησπέρα Τασσο.. την κρυάδα με την SQL την έφαγα.. αστα...!! μου έβγαζε στον κώδικα περιθώρια γειά σου εντελός ο κώδικας που έστειλες δουλεύει μια χαρά..!! να σε ρωτήσω κάτι..? vbKeySpace γιατι το βάζεις αφού ουσιαστικά επιστρέφει το νουμερο 32 και όχι κενά.. ή έχω καταλάβει κάτι λάθος? |
|
#4
|
|
Έχεις δίκιο! Παρέλειψα να γράψω το Chr() !!! ![]() Δες το διορθωμένο στο προηγούμενο μήνυμα.
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών σε VB.Net, Access, Excel, Outlook, Word |
|
#5
| |||
| |||
|
Καλημέρα Τάσσο..! Yep... τώρα πέζει πολύυυυυυ καλήτερα..!! :grin::grin::grin: Αλάξα και το txt του εκτυπωτή σε uni και πάει σφαίρα...!! Αφού στην δουλειά νομίζανε οτι χάλασε ο εκτυπωτής.. χα χα χα.. μέχρι τώρα τύπωνα απο report.. και καταλαβένεις την διαφορα σε ταχύτητα..!! :grin: |
|
#6
| |||
| |||
|
Παιδεια Sosssss...!!! Εκτυπώνω σε ενα εκτυπωτη panasonik Α3 Κ\Χ 3696 με την μεθοδο open (Ονομα Εκτυπωτη) for output # 1 prind # 1 ..... .... close #1 Εκτυπώνει απιστευτα γρήγορα.. !!!! Αλλά..........!!!!!! τα περιθώρια του εκτυπωτή ειναι 136 χαρακτήρες μήκος... οριζόντια ολα τα print #1...... δεν ξεπερνας τους 134 χαρακτήρες (μετρημένο γραμμή γραμμή με Len() ) Ομωςςςςς....!!!! μετα απο κάποιες σελίδες μου πηδά απο 1 εως 3 εκτυπωτικές γραμμές... Δεν το κάνει σε συγκεκριμένο σειμείο.. ούτε κάπου σταθερά..! Οταν τύπωνα μέσα απο report access δεν το έκανε..!! τωρα ποy τυπώνω με τον παραπάνω κώδικα με έχει πεθανει..!! driver που έχει ειναι (στο setup) ο εκτυπωτής είναι A ibm B epson και απο τον υπολογιστή α) IBM XL ||| B) Epson (fx 1170 - fx 1000 - ex 1000) και αρκετούς άλλους έχω δοκιμάσει και τους δύο χωρίς αποτέλεσμα.. αν και με τον epson τα πάει καλήτερα αφού μου πηδά εκτυπωτηκή γραμμή μετά απο αρκετές σελίδες.. Αλλα παρόλα αυτά και πάλι πηδά.. Μίλησα με τον τεχνικό της πανασόνικ αλλά δεν μπορεί να καταλάβει γιατί...! και ο ανθρωπος ήταν απιστευτα συνεργάσιμος..! 1ο Ερώτημα Το έχει αντιμετωπίσει κανεις απο εσάς..? Και εάν ναι τη έκανε..? 2ο Ερωτημα Υπάρχει τρόπος πριν εκτυπώσω να ελέγχω των το μέγεθος των (σελίδων) εκτυπώσεων σε kB που βρίσκονται ήδη στον εκτυπωτή σε αναμονή..? μήπως και γεμίζει η μνήμη του.. Η πανασονικ μου είπε ότι έχει μνήμη 13 kb.. Γιώργος |
|
#7
| |||
| |||
|
καλησπερα... Λοιπον το παραπάνω προβλημα με τις εκτυπωτηκες ληθηκε με τον εξής τρόπο αλλαγή γραμματοσειρά απο draft..! σε οποιαδήποτε άλλη στο setup του εκτυπωτή και στο setup το print mode σε by και οχι uni driver στον εκτυπωτή epson FX -1170 (οχι στο setup του εκτυπωτή αλλά στο pc) καλο απογευμα |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| Εργαλεία Θεμάτων | |
| Τρόποι εμφάνισης | |
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| [ Ερωτήματα ] Οριζόντια Εκτύπωση | mdragon | Access - Ερωτήσεις / Απαντήσεις | 9 | 04-12-10 09:36 |
| [ Εκθέσεις ] Επιλεκτική εκτύπωση | alatis | Access - Ερωτήσεις / Απαντήσεις | 7 | 26-10-10 08:38 |
| vba εκτύπωση με Laser | Giorgos | Visual Basic for Applications (VBA) | 9 | 28-03-10 21:58 |
| Εκτύπωση πίνακα με VBA | Giorgos | Access - Ερωτήσεις / Απαντήσεις | 19 | 25-11-09 10:51 |
Η ώρα είναι 12:04.




Αλλαγή σε γραμμικό τρόπο

