Tạo Form bằng Access nhưng lấy Source từ Excel.

Liên hệ QC

aitinh2005

Thành viên mới
Tham gia
6/8/07
Bài viết
7
Được thích
0
Vi du
1. Minh có 1 file Excel ten : test.xls ( trong file có Sheet1 và A1 ="123456", B1="7890123")

2. Va minh có 1 file access trong đó có 1 form ( trong form co 2 text box: text1 & text2)

Minh muốn moi khi mở file access va mở form lên thi tai ô text1 sẽ lay gia tri tai o "A1" va ô text2 sẽ lấy giá trị tai ô "B1" trong file Excel
(text1 = "123456" va text2="7890123"

Minh ko biet lam, cac cao thu xin hay chi giup, minh xin cam on nhiu /-*+/
 
Lần chỉnh sửa cuối:
Vi du
1. Minh có 1 file Excel ten : test.xls ( trong file có Sheet1 và A1 ="123456", B1="7890123")

2. Va minh có 1 file access trong đó có 1 form ( trong form co 2 text box: text1 & text2)

Minh muốn moi khi mở file access va mở form lên thi tai ô text1 sẽ lay gia tri tai o "A1" va ô text2 sẽ lấy giá trị tai ô "B1" trong file Excel
(text1 = "123456" va text2="7890123"

Minh ko biet lam, cac cao thu xin hay chi giup, minh xin cam on nhiu /-*+/

Bạn dùng code sau nhé:

Mã:
Private Sub Form_Load()
    Dim xlApp As Excel.Application, xlBook As Excel.Workbook, _
        xlSht As Excel.Worksheet, sFullPath As String
    
    sFullPath = CurrentProject.Path
    Set xlApp = New Excel.Application
    Set xlBook = xlApp.Workbooks.Open(FileName:=sFullPath & "\Test.xls")
    Set xlSht = xlBook.Sheets(1)
      Text1 = xlSht.Cells(1, 1)
      Text2 = xlSht.Cells(1, 2)
    
    On Error Resume Next
    Set xlSht = Nothing
    xlBook.Close
    Set xlBook = Nothing
    xlApp.Quit
    Set xlApp = Nothing
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Add thêm dữ liệu từ Excel vào Table của Access bằng Form của VB

Mình có 1 file Excel tên “test.xls” trong đó sheet1 tại ô A1 = “123”, B2= “456” và C1=”789”

Mình có them 1 file Access ten "ABC" trong đó có 1 table “TEST: có 3 fiels” và Table này đã có dữ liệu rùi.

Mình muốn tạo 1 form bằng VB với chức năng như sau:


Form sẽ có 1 "..." de load du lieu tu file Excel

1 button sau khi bấm vào button, Sẽ add thêm dữ liệu từ file Excel -> vào file Access ( nghĩa là lúc này Table “TEST sẽ thêm 1 record với 3 giá trị là “A1,B2 và C1”.

Minh mong cac cao thu giup đỡ. Thanks }}}}}}}}}}}}}}}
 
Mình có 1 file Excel tên “test.xls” trong đó sheet1 tại ô A1 = “123”, B2= “456” và C1=”789”
Mình có them 1 file Access ten "ABC" trong đó có 1 table “TEST: có 3 fiels” và Table này đã có dữ liệu rùi.
Mình muốn tạo 1 form bằng VB với chức năng như sau:
Form sẽ có 1 "..." de load du lieu tu file Excel

1 button sau khi bấm vào button, Sẽ add thêm dữ liệu từ file Excel -> vào file Access ( nghĩa là lúc này Table “TEST sẽ thêm 1 record với 3 giá trị là “A1,B2 và C1”.

Minh mong cac cao thu giup đỡ. Thanks }}}}}}}}}}}}}}}


Bạn tạo 1 câu lệnh SQL để nhập nó vào.

Mã:
Private Sub cmdNhap_Click()
Dim MySQL As String
 DoCmd.SetWarnings (False)
   MySQL = "INSERT INTO tblTest ( A1, B2, C1 ) VALUES(TEXT1, TEXT2, TEXT3)"
   DoCmd.RunSQL MySQL
   sub_Test.Requery
 DoCmd.SetWarnings (True)
 MsgBox "Ban da nhap du lieu thanh cong "
 
End Sub

Bạn xem file đính kèm nhé
 

File đính kèm



Bạn tạo 1 câu lệnh SQL để nhập nó vào.

Mã:
Private Sub cmdNhap_Click()
Dim MySQL As String
 DoCmd.SetWarnings (False)
   MySQL = "INSERT INTO tblTest ( A1, B2, C1 ) VALUES(TEXT1, TEXT2, TEXT3)"
   DoCmd.RunSQL MySQL
   sub_Test.Requery
 DoCmd.SetWarnings (True)
 MsgBox "Ban da nhap du lieu thanh cong "
 
End Sub
Bạn xem file đính kèm nhé


Cám ơn bạn nhưng mình muốn làm Form bằng VB chứ không phai bằng Access. vì minh muon viết 1 ứng dụng nhỏ để sử dụng mong bạn giúp đo. thanks
 
Cám ơn bạn nhưng mình muốn làm Form bằng VB chứ không phai bằng Access. vì minh muon viết 1 ứng dụng nhỏ để sử dụng mong bạn giúp đo. thanks

Bạn tạo 1 form có những controls và đặt tên cho những controls như hình bên dưới.

59.jpg

Chép toàn bộ code sau vào code form.

Mã:
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset


Private Sub cmdGhi_Click()
If Len(Text1) = 0 Or Len(Text2) = 0 Or Len(Text3) = 0 Then
    MsgBox "Co 1 vai TextBox van con de trong, vui long nhap day du.", vbCritical
    Text1.SetFocus
    Exit Sub
End If

rs.Open "Select * from tblTest ", conn, 1, 3

With rs
     .AddNew
        !a1 = Me.Text1
        !b2 = Me.Text2
        !c1 = Me.Text3
        .Update
       .Close
End With
Xoa
FillList
End Sub

Private Sub cmdLay_Click()
 Dim xlApp As Excel.Application, xlBook As Excel.Workbook, _
        xlSht As Excel.Worksheet, sFullPath As String
    
    sFullPath = App.Path
    Set xlApp = New Excel.Application
    Set xlBook = xlApp.Workbooks.Open(FileName:=sFullPath & "\Test.xls")
    Set xlSht = xlBook.Sheets(1)
 
      Text1 = xlSht.Cells(1, 1)
      Text2 = xlSht.Cells(2, 2)
      Text3 = xlSht.Cells(1, 3)
      
    On Error Resume Next
    Set xlSht = Nothing
    xlBook.Close
    Set xlBook = Nothing
    xlApp.Quit
    Set xlApp = Nothing

End Sub

Private Sub Form_Load()
On Error GoTo err

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data.mdb;Persist Security Info=False"
    FillList
Exit Sub
err:
MsgBox err.Description, vbInformation


End Sub
Sub FillList()

Screen.MousePointer = vbHourglass
rs.Open "SELECT * FROM tblTest", conn, adOpenStatic, adLockReadOnly
rs.MoveFirst
  With MSFlexGrid1
        .Rows = rs.RecordCount + 1
        .Cols = rs.Fields.Count
        .Row = 0
        .Col = 0
        .RowSel = .Rows - 1
        .ColSel = .Cols - 1
        .Clip = rs.GetString(adClipString, -1, Chr(9), Chr(13), vbNullString)
        .Row = 1
End With
Set rs = Nothing

Screen.MousePointer = vbDefault


End Sub
Sub Xoa()
Dim ctrl As Control
        For Each ctrl In Me.Controls
            If TypeOf ctrl Is TextBox Then ctrl.Text = ""
        Next ctrl
End Sub

Bạn xem thêm file nhé.
 

File đính kèm

Bác Domfootwear ơi! bác có thể giúp em 1 ví dụ như trên để em ứng dụng vào cái chương trình nhỏ của em được không?
Trên form access của em tạo nút lấy dữ liệu thì hiện thông báo chọn kiểu lấy
1. lấy STT nào? nhập vào thì sẽ lấy dữ liệu dòng đó vào các textbox trong form access.
2. lấy dòng cuối cùng của STT thì nó cũng làm tương tự như trên là lấy dữ liệu vào form access.

trên file excel của em STT là ID cho việc lấy các dữ liệu của các cột dữ liệu vào form access.
 
Bác Domfootwear ơi! bác có thể giúp em 1 ví dụ như trên để em ứng dụng vào cái chương trình nhỏ của em được không?
Trên form access của em tạo nút lấy dữ liệu thì hiện thông báo chọn kiểu lấy
1. lấy STT nào? nhập vào thì sẽ lấy dữ liệu dòng đó vào các textbox trong form access.
2. lấy dòng cuối cùng của STT thì nó cũng làm tương tự như trên là lấy dữ liệu vào form access.

trên file excel của em STT là ID cho việc lấy các dữ liệu của các cột dữ liệu vào form access.

Cũng với VD bài trên mình sửa lại theo yêu cầu của bạn như sau (Phần chữ màu đỏ):

Mã:
Private Sub cmdLay_Click()
 [B][COLOR=red]Dim r As String[/COLOR][/B], xlApp As Excel.Application, xlBook As Excel.Workbook, _
        xlSht As Excel.Worksheet, sFullPath As String
    
    sFullPath = CurrentProject.Path
    Set xlApp = New Excel.Application
    Set xlBook = xlApp.Workbooks.Open(FileName:=sFullPath & "\Test.xls")
    Set xlSht = xlBook.Sheets(1)

   [B][COLOR=red] r = InputBox("Vui long go so TT can lay")[/COLOR][/B]
    
      Text1 = xlSht.Cells([COLOR=red][B]r[/B][/COLOR], 1)
      Text2 = xlSht.Cells([COLOR=red][B]r[/B][/COLOR], 2)
      Text3 = xlSht.Cells([COLOR=red][B]r[/B][/COLOR], 3)
      
    On Error Resume Next
    Set xlSht = Nothing
    xlBook.Close
    Set xlBook = Nothing
    xlApp.Quit
    Set xlApp = Nothing
End Sub

Private Sub cmdNhap_Click()
Dim MySQL As String
 DoCmd.SetWarnings (False)
   MySQL = "INSERT INTO tblTest ( A1, B2, C1 ) VALUES(TEXT1, TEXT2, TEXT3)"
   DoCmd.RunSQL MySQL
   sub_Test.Requery
 DoCmd.SetWarnings (True)
 MsgBox "Ban da nhap du lieu thanh cong "
 
End Sub
 
Cám ơn Bác Domfootwear em đã thử OK rồi! chẳng là em cũng ko rành nhưng copy và paste code thì hiểu! thế mới chán! để em áp thử vào file access lấy dữ liệu từ file excel do các bạn khác nhập em đỡ mất công nhập vào access.

Mình không biết cái file access của mình lưu giữ liệu từ textbox vào bảng như thế nào mình gởi mail Bác Domfootwear làm dùm mình cho vào chương trình nhé.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Web KT

Bài viết mới nhất

Back
Top Bottom