ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > Εξαγωγή πίνακα σε ascii file

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 04-12-09, 00:23
Όνομα: Σταυρος
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 01-12-2009
Μηνύματα: 10
Προεπιλογή Εξαγωγή πίνακα σε ascii file

Καλησπέρα σε όλους. Αντιμετωπίζω το εξης πρόβλημα:
Έχω ένα πίνακα με 9 πεδία και θέλω να τον εξάγω σε ascii file, σε συγκεκριμένη θέση αλλα πρέπει να υπάρχουν συγκεκριμένες αποστάσεις μεταξύ των πεδίων δηλ.

Το πεδίο1 ξεκινάει από την θέση 1 και έχει μήκος 9
Το πεδίο2 ξεκινάει από την θέση 10 και έχει μήκος 10
Το πεδίο3 ξεκινάει από την θέση 20 και έχει μήκος 13
Το πεδίο4 ξεκινάει από την θέση 33 και έχει μήκος 42
Το πεδίο5 ξεκινάει από την θέση 75και έχει μήκος 2
Το πεδίο6 ξεκινάει από την θέση 77 και έχει μήκος 40
Το πεδίο7 ξεκινάει από την θέση 117 και έχει μήκος 40
Το πεδίο8 ξεκινάει από την θέση 157 και έχει μήκος 12 και έχει 2 δεκαδικά
Το πεδίο9 ξεκινάει από την θέση 1169και έχει μήκος 12 και έχει 2 δεκαδικά

Μήπως ξέρει κάποιος πως μπορώ να το κάνω...?????
Ευχαριστώ...

Τελευταία επεξεργασία από το χρήστη stavros : 04-12-09 στις 07:49.
Απάντηση με παράθεση
  #2  
Παλιά 04-12-09, 10:17
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.249
Προεπιλογή

Καλημέρα Σταύρο!
Γράφεις:
Παράθεση:
Το πεδίο8 ξεκινάει από την θέση 157 και έχει μήκος 12 και έχει 2 δεκαδικά
Στους 12 αυτους χαραχτήρες, υπάρχει ΚΑΙ το κόμα, ή θα το δημιουργήσουμε εμείς;
Δώσε μας ένα μικρό παράδειγμα του αποτελέσματος πχ:

123456789123
ή
123456789,12

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #3  
Παλιά 04-12-09, 11:56
Όνομα: Σταυρος
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 01-12-2009
Μηνύματα: 10
Προεπιλογή

Τάσο έχεις δίκιο συγνώμη για την παράλειψη.
Τα δεκαδικά πρέπει να διαχωρίζονται με τελεία πχ. 100.00 ή 234.45
Επίσης πρέπει να βγάζω τα πεδία χωρίς εισαγωγικά δηλαδή πρέπει να είναι:
πεδιο1 πεδιο2....κτλ και όχι
"πεδίο1" "πεδίο2"...κτλ
Ευχαριστώ πάντος για το ενδιαφέρον...

Τελευταία επεξεργασία από το χρήστη stavros : 04-12-09 στις 11:59.
Απάντηση με παράθεση
  #4  
Παλιά 04-12-09, 13:21
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.249
Προεπιλογή

Αγαπητέ Σταύρο, καλημέρα!

Δημιούργησε ένα νέο ερώτημα με το όνομα "Qrytbl1" πήγαινε στην προβολή SQL και πέρασε τon
παρακάτω κώδικα:

Κώδικας:
SELECT 
Mid([Pedio1],1,9) AS Ped1, 
Mid([Pedio2],10,10) AS Ped2, 
Mid([Pedio3],20,13) AS Ped3, 
Mid([Pedio4],33,42) AS Ped4, 
Mid([Pedio5],75,2) AS Ped5, 
Mid([Pedio6],77,40) AS Ped6, 
Mid([Pedio7],117,40) AS Ped7, 
Mid([Pedio8],157,10) & "." & Mid([Pedio8],168,2) AS Ped8, 
Mid([Pedio9],1169,10) & "." & Mid([Pedio9],1180,2) AS Ped9
FROM tbl1;
όπου" tbl1" = το όνομα του πίνακα και Pedio1,Pedio1 κτλ. το όνομα των πεδίων.

Δες αν τα αποτελέσματα είναι αυτά που ζητάς.

Για να εξάγεις το ερώτημα αυτό ως κείμενο μπορείς (αν δεν το κάνεις χειροκίνητα) να χρησιμοποιήσεις τον παρακάτω κώδικα:
Κώδικας:
DoCmd.TransferText acExportDelim, "", "Qrytbl1", CurrentProject.Path  _ 
& "\test.txt", True, "", 65001  ' 65001 = Unicode (UTF-8) αντί σε  ascii
Αν πάλι η όλη διαδικασία χρειάζεται να γίνει με VBA, απλά γράψε στο φόρουμ.

Περιμένουμε νέα σου

Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #5  
Παλιά 04-12-09, 18:52
Όνομα: Σταυρος
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 01-12-2009
Μηνύματα: 10
Προεπιλογή

Καλησπέρα Τάσο
Το δοκίμασα και μου δημιούργησε ένα ερώτημα με επικεφαλίδες ped1,ped2,ped3.....ped9
στο ped1 έχει σωστά την ημερομηνία στο ped2 έχει κάποιους αριθμούς όπως 1,3,0,.....σε διαφορετικά rows και τα υπόλοιπα ped3,ped4.....ped9 είναι κενά.

Ευχαριστώ για την ανταπόκριση πάντως...
Απάντηση με παράθεση
  #6  
Παλιά 04-12-09, 23:14
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.249
Προεπιλογή

Παράθεση:
Το πεδίο1 ξεκινάει από την θέση 1 και έχει μήκος 9
Ααα...τώρα νομίζω οτι κατάλαβα ... η θέση 1 πχ. είναι η θέση στο αρχείο και όχι στο πεδίο... ή όχι;
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #7  
Παλιά 05-12-09, 10:45
Όνομα: Σταυρος
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 01-12-2009
Μηνύματα: 10
Προεπιλογή

Καλημέρα Τάσο
Το πεδίο πρέπει να ξεκινάει από την θέση 1.... αλλά δεν μπορώ να βρω καθόλου πως θα το κάνω χωρίς την χρήση οδηγού...
Απάντηση με παράθεση
  #8  
Παλιά 05-12-09, 11:28
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.249
Προεπιλογή

Καλημέρα!
Εξηγησε μου:

το περιεχόμενο του πεδιου 2, πρέπει να περαστεί στη θέση 10 του ascii
αρχείου και να έχει μήκος 10 χαραχτήρες,
το περιεχόμενο του πεδιου 3 , πρέπει να περαστεί στη θέση 20 (μάλλον 21) του ascii
αρχείου και να έχει μήκος 10 χαραχτήρες κοκ...

Αυτό ζητάς;

Φτιαξε αν θέλεις ένα αρχείο κειμένου με μια σειρά από τα δεδομένα των πεδίων έτσι όπως θα ήθελες να τα τοποθετήσεις και ανεβασε το στο φόρουμ
για να δώσουμε μια πιο ευστοχη απάντηση.

Τα λέμε..

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 05-12-09 στις 11:32.
Απάντηση με παράθεση
  #9  
Παλιά 06-12-09, 09:03
Όνομα: Σταυρος
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 01-12-2009
Μηνύματα: 10
Προεπιλογή

Τάσο αυτό θέλω όπως το γράφεις. Δεν ξέρω καθόλου πως μπορώ να εξάγω ένα αρχείο και να δίνω την άπόσταση ανάμεσα στα πεδία και από ποιο σημείο να ξεκινάνε.
Ανεβάζω ενα txt για να δεις περίπου τι θέλω.
Συνημμένα Αρχεία
Τύπος Αρχείου: txt table_new.txt (728 Bytes, 26 εμφανίσεις)
Απάντηση με παράθεση
  #10  
Παλιά 06-12-09, 15:13
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.249
Προεπιλογή

Αγαπητέ Σταύρο, 
με τον παρακάτω κώδικα, νομίζω ότι λύνεις το πρόβλημα σου.

Option Compare Database
Option Explicit
Dim tmpText As String, rs As Object
' Εδώ ρυθμίζεις τα μήκη των πεδίων (Για το Pedio1 αντιστοιχεί το Len_f1, για το Pedio2 το Len_f2 κοκ.)
Const Len_f1 = 9, Len_f2 = 10, Len_f3 = 13, Len_f4 = 42
Const Len_f5 = 2, Len_f6 = 40, Len_f7 = 40, Len_f8 = 12, Len_f9 = 12

Sub PrintTest()
Dim fso As Object, oStream As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set oStream = fso.CreateTextFile(CurrentProject.Path & "\MyTextInUnicode.txt", True, True)
Set rs = CurrentDb.OpenRecordset("Table1", dbOpenSnapshot) ' Table1= Το όνομα του πίνακα
With rs
If .RecordCount = 0 Then
.Close
Set rs = Nothing
MsgBox "No Data to export!"
Exit Sub
End If
.MoveFirst
WriteHeaders
While Not .EOF
WriteNextLine
.MoveNext
Wend
.Close
Set rs = Nothing
oStream.Write tmpText
oStream.Close
Set oStream = Nothing
Set fso = Nothing
End With
End Sub

Function WriteHeaders() As String
' Εδώ βάλε τα ονόματα των επικεφαλίδων("Pedio1“, “Pedio1“ κτλ.). Πρόσεξε να μην υπερβαίνουν το προκαθορισμένο μήκος.
tmpText = PrintWithSpaces("Pedio1", Len_f1)
tmpText = tmpText & PrintWithSpaces("Pedio2", Len_f2)
tmpText = tmpText & PrintWithSpaces("Pedio3", Len_f3)
tmpText = tmpText & PrintWithSpaces("Pedio4", Len_f4)
tmpText = tmpText & PrintWithSpaces("Pedio5", Len_f5)
tmpText = tmpText & PrintWithSpaces("Pedio6", Len_f6)
tmpText = tmpText & PrintWithSpaces("Pedio7", Len_f7)
tmpText = tmpText & PrintWithSpaces("Pedio8", Len_f8)
tmpText = tmpText & PrintWithSpaces("Pedio9", Len_f9)
tmpText = tmpText & vbCrLf
End Function

Function WriteNextLine() As String
' Εδώ βάλε τα ονόματα των πεδίων προς εγαγωγή (Pedio1, Pedio1 κτλ.
tmpText = tmpText & PrintWithSpaces(Nz(rs.Fields("Pedio1"), vbNullString), Len_f1)
tmpText = tmpText & PrintWithSpaces(Nz(rs.Fields("Pedio2"), vbNullString), Len_f2)
tmpText = tmpText & PrintWithSpaces(Nz(rs.Fields("Pedio3"), vbNullString), Len_f3)
tmpText = tmpText & PrintWithSpaces(Nz(rs.Fields("Pedio4"), vbNullString), Len_f4)
tmpText = tmpText & PrintWithSpaces(Nz(rs.Fields("Pedio5"), vbNullString), Len_f5)
tmpText = tmpText & PrintWithSpaces(Nz(rs.Fields("Pedio6"), vbNullString), Len_f6)
tmpText = tmpText & PrintWithSpaces(Nz(rs.Fields("Pedio7"), vbNullString), Len_f7)
tmpText = tmpText & PrintWithSpaces(Nz(rs.Fields("Pedio8"), vbNullString), Len_f8)
tmpText = tmpText & PrintWithSpaces(Nz(rs.Fields("Pedio9"), vbNullString), Len_f9)
tmpText = tmpText & vbCrLf
End Function

Function PrintWithSpaces(s$, CharCount) As String
If Len(s) > CharCount Then s = Left(s, CharCount)
PrintWithSpaces = s & String(CharCount - Len(s), Chr(vbKeySpace))
End Function

Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 06-12-09 στις 18:31.
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Excel07] Εξαγωγή δεδομένων από πίνακα panageo Excel - Ερωτήσεις / Απαντήσεις 6 18-05-15 13:12
[Συναρτήσεις] Πως κάνω εξαγωγή δεδομένων απο πίνακα; koumpana Excel - Ερωτήσεις / Απαντήσεις 27 29-05-12 09:21
[Excel07] Από ascii σε Excel giorgos-barca Excel - Ερωτήσεις / Απαντήσεις 9 23-03-12 22:38
[ Πίνακες ] Εξαγωγή πίνακα σε excel markosv Access - Ερωτήσεις / Απαντήσεις 2 23-11-11 18:01
[Συναρτήσεις] Εξαγωγή Πίνακα Access στο Excel dream-garden Excel - Ερωτήσεις / Απαντήσεις 1 31-03-11 20:41


Η ώρα είναι 21:17.