Tôi đã đọc qua một số chủ đề liên quan, nhưng vẫn để lại cho tôi câu hỏi này. Tôi muốn viết một hàm trong ứng dụng cơ sở dữ liệu Access để nhập dữ liệu Excel theo chương trình bắt đầu trước hai hàng đầu tiên — đó là tiêu đề và các dấu tách đơn vị.Làm cách nào để tôi có thể nhập dữ liệu Excel theo cách lập trình vào bảng Access?
Tôi đang tìm kiếm để thực hiện những điều sau đây:
- Có khả năng tự động chọn file Excel Tôi đang tìm kiếm để nhập khẩu, có lẽ sử dụng một hộp thoại và có lẽ là một cửa sổ trình duyệt tập tin.
- Chèn dữ liệu 'chung' vào mỗi hàng khi được nhập - như số nội dung của máy ghi và vị trí được chỉ định của người ghi.
- Bắt đầu nhập tại hàng số 3, thay vì hàng # 1 - khi thiết bị tự động đặt tiêu đề và đơn vị thông tin đo lường cho bản ghi lên đó.
- Bỏ qua tất cả các cột khác trong trang tính - dữ liệu sẽ luôn có mặt trong các cột từ A đến G và dữ liệu sẽ luôn bắt đầu trên hàng # 3.
Đây là cách dữ liệu Excel thường được định dạng (dấu gạch ngang đại diện cho dữ liệu):
Date Time Temp Dew Point Wet Bulb GPP RH Cº Cº Cº g/Kg % ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
tôi đã cố gắng tích hợp trong Access 'Get External Data' chức năng, nhưng nó đã giành' t bỏ qua hàng # 2 và dữ liệu phụ trong tệp Excel sẽ phát ra lỗi khi cố gắng nhập, dừng quá trình trong các bản nhạc của nó.
Tôi sẽ là người đầu tiên thừa nhận rằng tôi chưa bao giờ cố gắng viết chức năng nhập cho Access trước khi sử dụng tệp bên ngoài, do đó tôi là một chút của một newbie. Bất kỳ trợ giúp nào mọi người có thể chỉ cho tôi sẽ luôn được đánh giá cao và tôi có thể cập nhật điều này với mã đã cố gắng khi cần thiết. Cảm ơn bạn trước cho tất cả sự giúp đỡ của bạn, tất cả mọi người!
- Sửa 01/03/2011 @ 10:41 -
Sau khi đọc kết nối ADO sang Excel chủ đề dữ liệu bằng cách Remou đề xuất, đây là một số mã tôi nghĩ sức thực hiện công việc, nhưng Tôi không chắc.
Dim rs2 As New ADODB.Recordset
Dim cnn2 As New ADODB.Connection
Dim cmd2 As New ADODB.Command
Dim intField As Integer
Dim strFile As String
strFile = fncOpenFile
If strFile = "" Then Exit Sub
With cnn2
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source='" & strFile & "'; " & "Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'"
.Open
End With
Set cmd2.ActiveConnection = cnn2
cmd2.CommandType = adCmdText
cmd2.CommandText = "SELECT * FROM [Data$] WHERE G1 IS NOT NULL"
rs2.CursorLocation = adUseClient
rs2.CursorType = adOpenDynamic
rs2.LockType = adLockOptimistic
rs2.Open cmd2
Vấn đề giải pháp ở trên là tôi cần phải biết trước phạm vi dữ liệu, và nó thực sự phụ thuộc vào số lượng thiết bị này kéo vào trong khi nhiệm vụ ghi nhật ký dữ liệu của nó. Tôi sẽ xem xét điều này khi tôi trở lại văn phòng vào ngày mai - và xem tôi có thể cung cấp thêm thông tin hay không. –
Nó luôn luôn có thể kết nối thông qua tự động hóa và nhận được phạm vi, mặc dù nó sẽ làm chậm mọi thứ lên một chút. – Fionnuala
Tôi đã đăng một tuyên bố kiểm tra ở trên, được sửa đổi cho bài viết trước của tôi. Đây có phải là những gì bạn đã có trong tâm trí? –