Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Μεταφορά απο Excel σε Access
Καλησπέρα Θέλω να κάνω μεταφορά δεδομένων απο exel σε access Εχω ενα φύλο exel με τα στοιχεια α) Επωνυμία β) τηλεφωνο γ) Επαγγελμα Και ενα πινακα στην access με τα αντιστοιχα πεδια α) Επωνυμία β) τηλεφωνο γ) Επαγγελμα Υπάρχει κάποιος κώδικας στην access που να διαβάζει όλο το φύλλο του exel και να τα μεταφέρει στον πινακα της access που εχω φτιάξει π.χ. ενα φύλο exel εχει 100 εγγραφες με τα παραπανω πεδια, αυτες τις εγγραφες να τις μεταφέρω όλες στον πινακα της access αλλα στα αντιστοιχα πεδία. ο πινακας ειναι SQL Πιστεύω να έγινα όσο γίνεται σαφής Ευχαριστώ πολύ Αλεξία Τελευταία επεξεργασία από το χρήστη ΑΛΕΞΙΑ : 21-02-13 στις 21:04. |
#2
| |||
| |||
Καλησπέρα για όλους Ψάχνοντας στο forum βρήκα αυτό το κώδικα Αλλα όταν ο κώδικας φτάνει εδώ CurrentProject.Connection.Execute strSQL, lngRecs βγαζει σφάλμα "Invalid object name Excel 8.0;HDR=YES;Database=C:\test.xls.DataSheet$ " μηπως ξέρει κανεις γιατί; Private Declare Function GetTickCount Lib "kernel32" () As Long Sub Test() Dim strSQL As String Dim lngStart As Long Dim lngRecs As Long ' On Error GoTo ErrHandler DoCmd.SetWarnings False strSQL = "Insert Into dbo.Table1 (ag, ab) " _ & "Select AM, NAME From [Excel 8.0;HDR=YES;Database=C:\test.xls].[DataSheet$];" lngStart = GetTickCount CurrentProject.Connection.Execute strSQL, lngRecs MsgBox lngRecs & " records added in Table1 in " _ & (GetTickCount - lngStart) & " milliseconds!", vbInformation 'ExitProc: ' DoCmd.SetWarnings True ' Exit Sub 'ErrHandler: ' MsgBox Err.Description, vbExclamation ' Resume ExitProc End Sub |
#3
| ||||
| ||||
Καλησπέρα Δες το επισυναπτόμενο αρχείο... Είναι ο πυρήνας του κώδικα, ο οποίος απαιτείται για να κάνει στοιχειωδώς ό,τι ζητάς με την ανάρτησή σου. Καλή συνέχεια... Με εκτίμηση Νίκος Δ. |
#4
| |||
| |||
καλημέρα Νίκο Ο κώδικας που μου έστειλες δουλεύει μια χαρά σε ευχαριστώ πολύ Απλά εάν ξέρεις και με βοηθήσεις με τον κώδικα που ανέβασα γιατι εκει μπορώ και ορίζω όποια πεδία θέλω απο τον πινακα και αντιστοιχα απο το exel, ενω στον κωδικα που μου έστειλες πρέπει να διαγραφω πεδία απο το exel. Πρέπει να καταχωρίσω απο διαφορα exel 400.000 εγγραφες και είναι απο 700 exel, οπότε θα μου κάνει την ζωη πολύ δύσκολη Εαν δεν μπορέσω να βρω την λύση στον άλλο κωδικα που ανέβασα θα το κάνω με αυτόν. Επίσης το κακό είναι ότι εγω έχω τους πίνακες σε SQL και εδώ απο ότι είδα στο forum μονο για πίνακες σε access Dim Adod_arx As ADODB.Recordset Set Adod_arx = New Recordset Dim diadromi$ Adod_arx.Open "SELECT * FROM TblData", CurrentProject.Connection, adOpenKeyset, adLockOptimistic diadromi = "C:\programa\test.xlsx" If Dir(diadromi) > "" Then DoCmd.TransferSpreadsheet _ TransferType:=acImport, _ SpreadSheetType:=acSpreadsheetTypeExcel8, _ TableName:="TblData", _ filename:=diadromi, _ HasFieldNames:=True End If Πάντως σε ευχαριστώ και πάλι Αλεξια |
#5
| ||||
| ||||
Καλησπέρα! Αλέξια, ανέβασε μας ένα αρχείο Excel καθώς και ένα αρχείο Access για να δούμε τη δομή τους και να σε βοηθήσουμε. Για να δούμε αν μπορεί να γίνει η διαδικασία αυτή αυτόματα πες μας:
Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#6
| |||
| |||
καλημέρα Τασο Τα αρχεια exel ειναι xlsx και έχουν όλα τα ίδια πεδια. προσπάθεισα να ανεβάσω και τον πινακα αλλα μου βγαζεί σφάλμα. Ειναι αρχεια απο επιμελητήρια και τα κατεβάζω απο το internet σε μορφή xml μετα τα μετατρέπω σε exel και στην συνέχεια τα αποθηκεύω σε ένα πινακα που προυπήρχε στην βάση Έχω κατεβάσει ήδη πέριπου στα 700 τετοια αρχεια και τα μετετρεψα σε exel Ο SQL ειναι 2005 και η βάση "εργο" 2007 Επισης για τα επομενα αρχεια exel που θα κατεβάσω επειδη θα διαγράψω αυτα τα 700 exel όταν τα αποθηκεύσω και το exel θα πέρνει το ίδιο όνομα όταν το μετατρέπω, δεν ξέρω εάν εγινα σαφής. Οπότε στον κώδικα δεν θα αλλάζω σχεδόν τίποτα. Ούτε όνομα στο exel ουτε ονόματα στα πεδία αλλα ούτε και στον πινακα. εάν μπορέσω να κάνω την καταχώρηση με insert into θα βάλω και 1 κλειδι στο ΑΜ στο πεδίο του πινακα οπότε δεν θα έχω διπλοεγγραφες στην καταχώρηση Προσπάθησα να γίνω όσο ποιό σαφής γίνετε Φιλικά αλεξία |
#7
| ||||
| ||||
Καλημέρα Τι πρόβλημα θα έχεις αν ο πίνακας που θα δέχεται τα δεδομένα σου έχει πεδία "επιπλέον", έτσι ώστε να ισοσταθμιστεί ο πληθυσμός πεδίων Access και excel; Βεβαίως και υπάρχουν πιο ευέλικτες λύσεις, αλλά λέμε τωρα... Νίκος Δ. |
#8
| |||
| |||
καλημέρα και πάλι Νικο Ο πινακας ήδη πολλά πεδία εάν θυμάμε καλά περίπου στα 35, εαν καταφερω να τον ανεβάσω θα το δείς, και το exel έχει πεδία τα οποια δεν χρειάζομε καθόλου. Οπότε έτσι θα φορτώσω τον πινακα και χωρίς κάποιο σημαντικό λόγο. Φιλικά αλεξία |
#9
| ||||
| ||||
Αλεξια επιμένεις και επομένως ανεβάζω μια δεύτερη λύση εισαγωγής δεδομένων. Να δώσεις ιδιαίτερη σημασία, οτι στον κώδικα ονομάζω το φύλλο του Excel από το οποίο εισάγω πλέον στήλες! Ο κώδικας έχει μια πολυπλοκότητα σε σχέση με την προηγούμενη ανάρτηση. Δοκίμασε και πες μας τα συμπεράσματα σου... Τα ξαναλέμε λοιπόν! Καλό απόγευμα Νίκος Δ. Υστερολόγιο: Καλώς ήλθες στην παρέα μας. Εύχομαι ωφέλεια... |
#10
| |||
| |||
Καλημέρα Νικο και καλή εβδομάδα. Στον 2ο κώδικα που μου έστειλες μου χτυπάει εδώ Set rs = .OpenRecordset("DataSh$") ' Δεν είναι δυνατή η εύρεση του αντικειμένου 'DataSh$' Μου βγάζει αυτό το πρόβλημα, κάνω κάτι λάθος? μήπως λέιπει καμία referens? Αλεξία |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[VBA] Μεταφορά δεδομένων από Excel σε Access | Tasos | Excel samples - Χρήσιμα αρχεία & παραδείγματα | 0 | 11-04-12 08:38 |
Μεταφορά εγγραφών από access σε access | stratos75 | Access - Ερωτήσεις / Απαντήσεις | 2 | 29-06-11 11:59 |
Η ώρα είναι 15:05.