Ανανέωση ιστοσελίδας

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 01-04-13, 09:22
Όνομα: Θάνος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 09-05-2012
Περιοχή: Λάρισα
Μηνύματα: 49
Προεπιλογή StrConv

Καλημέρα χρησιμοποιώ την Funciton Strconv

StrConv(Nz(Me!Service, ""), vbProperCase

Πχ ΤΟΜΕΑΣ γίνετε Τομέασ σε export που το κάνω σε Word Μορφή.

Εντός της Access δουλεύει μια χαρά..(το τσεκαρα sto immediate window)

Υπάρχει τρόπος διόρθωσης? Χρησιμοποιώ Bookmark.

Ευχαριστώ
Θάνος
Απάντηση με παράθεση
  #2  
Παλιά 01-04-13, 21:47
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

Καλησπέρα!
Θάνο, ούτε η StrConv() αλλά ούτε και το Word (μέσω αυτοματισμού) υποστηρίζουν τον γραμματικό κανόνα του τελικού σίγμα.

Δεν κατάλαβα όμως πως θα μπουν οι τόνοι μετά τη μετατροπή των κεφαλαίων.
Αυτό όμως είναι δικό σου θέμα.

Ο παρακάτω κώδικας παίρνει τις τιμές των πεδίων της φόρμας και τις στέλνει σε αντίστοιχους σελιδοδείκτες σε υπάρχον έγγραφο Word:

Κώδικας:
Option Compare Database
Option Explicit

Private Sub cmdExportDataToWord_Click()
    Dim wd As Object
    Dim oDoc As Object
    Set wd = CreateObject("Word.Application")
    Set oDoc = wd.Documents.Open("E:\Desktop\Test.docx")    ' Προσάρμοσε τη διαδρομή του αρχείου
    wd.Visible = True
    SetBokkmarkRangeText oDoc, "Text1", Nz(Me.Service, "")
    '    SetBokkmarkRangeText oDoc, "Text2", Nz(Me.άλλο_πεδίο, "")
    '    SetBokkmarkRangeText oDoc, "Text3", Nz(Me.άλλο_πεδίο, "")
    AppActivate oDoc.Name
    Set oDoc = Nothing
    Set wd = Nothing
End Sub

Function SetBokkmarkRangeText(oDoc As Object, BookkmarkName As String, StrText)
    Dim oRange As Object
    Dim strWord As String
    Dim i As Integer
    If oDoc.Bookmarks.Exists(BookkmarkName) Then
        Set oRange = oDoc.Bookmarks(BookkmarkName).Range
        oRange.Text = StrText
        oRange.Case = 2
        For i = 1 To oRange.Words.Count
            strWord = Trim(oRange.Words.Item(i).Text)
            If Right(strWord, 1) = ChrW(963) Then
                oRange.Words.Item(i).Text = Left(strWord, Len(strWord) - 1) & ChrW(962) & Chr(32)
            End If
        Next
    End If
End Function
Καλή συνέχεια!

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #3  
Παλιά 02-04-13, 10:13
Όνομα: Θάνος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 09-05-2012
Περιοχή: Λάρισα
Μηνύματα: 49
Προεπιλογή

Ευχαριστώ Τάσο θα το δοκιμάσω και θα σας πω
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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



Η ώρα είναι 20:25.