• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Đọc và Ghi trên Excel (xls) với TextBox chuẩn

Các thủ thuật liên quan đến việc xử lý ứng dụng, biểu mẫu và control
User avatar
truongphu
VIP
VIP
Posts: 4766
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 520 times

Đọc và Ghi trên Excel (xls) với TextBox chuẩn

Postby truongphu » Thu 14/04/2011 10:25 pm

Thủ thuật: Đọc và Ghi trên Excel (xls) với TextBox chuẩn
Tác giả: truongphu
Mô tả: Đọc và Ghi trên Excel (xls) với TextBox chuẩn



Ta đã quen với việc muốn đọc và ghi trên file Excel (xls) buộc phải chèn thư viện Excel
Bài viết kèm Project sau rình bày kỹ thuật Đọc và Ghi trên Excel (xls) với TextBox chuẩn
(Thực ra là do DDE [Dynamic Data Exchange] thực hiện, mà TextBox chuẩn được MS thiết kế có kèm hoạt động của DDE)

* Code hoạt động trên XP SP2, cần Text1 và vài command như trong code
Giao tiếp với file XLS (2003)
  1. Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
  2. Const SW_SHOWNORMAL = 1
  3.  
  4. Private Sub Command1_Click() ' Ðoc Sheet1
  5.        OpenExcel
  6.        Text1.LinkMode = 0
  7.        Text1.LinkTopic = "Excel|Book1.xls"
  8.        Text1.LinkItem = "R1C1:R6C2"
  9.        Text1.LinkMode = 1
  10.        Text1.LinkMode = 0
  11.         CloseExcel
  12. End Sub
  13.  
  14.  'truongphu
  15. Private Sub Command2_Click() ' Ðoc Sheet2
  16.        OpenExcel
  17.        Text1.LinkMode = 0
  18.        Text1.LinkTopic = "Excel|Sheet2"
  19.        Text1.LinkItem = "R1C1:R6C2"
  20.        Text1.LinkMode = 1
  21.        Text1.LinkMode = 0
  22.         CloseExcel
  23. End Sub
  24.  
  25. Private Sub Command3_Click() ' Ghi Sheet1
  26.        OpenExcel
  27.        Text1.LinkMode = 0
  28.        Text1.LinkTopic = "Excel|Sheet1"
  29.        Text1.LinkItem = "R1C4:R2C6"
  30.        Text1.LinkMode = 1
  31.        Text1 = "Ho" & vbTab & "Tên" & vbTab & "Tuôi" & vbCrLf & "Bùi" & vbTab & "Toàn" & vbTab & 22
  32.        Text1.LinkPoke
  33.        Text1.LinkMode = 0
  34.         'CloseExcel
  35. End Sub
  36.  
  37. Private Sub Command4_Click() ' Font Cell
  38.        OpenExcel
  39.        Text1.LinkMode = 0
  40.        Text1.LinkTopic = "Excel|Sheet1"
  41.        Text1.LinkMode = 1
  42.        Text1.LinkExecute ("[SELECT(""R2C5"")]")
  43.        Text1.LinkExecute ("[FONT.PROPERTIES(""Times New Roman"",""Bold"",10)]")
  44.        Text1.LinkMode = 0
  45.         'CloseExcel
  46. End Sub
  47.  
  48. Sub CloseExcel() ' not save
  49. Set aaa = GetObject("winmgmts:\root\cimv2").ExecQuery _
  50.     ("Select * from Win32_Process Where Name = 'Excel.exe'")
  51. For Each a In aaa
  52.     a.Terminate
  53. Next
  54. End Sub
  55.  
  56. Sub OpenExcel()
  57.     If IsFileOpen(App.Path & "\qqq.xls") = False Then
  58.     ShellExecute Me.hwnd, vbNullString, App.Path & "\Book1.xls", _
  59.     vbNullString, vbNullString, SW_SHOWNORMAL
  60.     End If
  61. End Sub
  62.  
  63. Function IsFileOpen(FileName As String) As Boolean
  64.     Dim filenum As Integer 'truongphu
  65.    filenum = FreeFile()
  66.     On Error Resume Next
  67.     Open FileName For Input Lock Read As #filenum
  68.     Close filenum
  69.     Select Case Err
  70.         Case 0
  71.             IsFileOpen = False
  72.         Case 70
  73.             IsFileOpen = True
  74.         Case Else
  75.     End Select
  76. End Function
  77.  
Attachments
DDE Ðoc Ghi Excel.rar
(3.26 KiB) Downloaded 1427 times


o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

User avatar
truongphu
VIP
VIP
Posts: 4766
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 520 times

TextBox chuẩn truy vấn Access

Postby truongphu » Fri 15/04/2011 10:24 am

"Chơi" luôn cái truy vấn Access:
  1. Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
  2. Const SW_SHOWNORMAL = 1
  3. ' truongphu
  4.  
  5. Private Sub Command1_Click()
  6.         OpenAccess
  7.       Text1.LinkTopic = "MSACCESS|db1;TABLE Table1"
  8.       Text1.LinkMode = 2     ' manual DDE link
  9.      Text1.LinkItem = "All"
  10.       Text1.LinkRequest
  11.       Text1.LinkMode = 0
  12.         CloseAccess
  13. End Sub
  14.  
  15. Private Sub Command2_Click()
  16.         OpenAccess
  17.       Text1.LinkTopic = "MSACCESS|db1;SQL Select * From Table1 Where Tuôi <20"
  18.       Text1.LinkMode = 2     ' manual DDE link
  19.      Text1.LinkItem = "All"
  20.       Text1.LinkRequest
  21.       Text1.LinkMode = 0
  22.         CloseAccess
  23. End Sub
  24.  
  25. Sub CloseAccess() ' not save
  26. Set aaa = GetObject("winmgmts:\root\cimv2").ExecQuery _
  27.     ("Select * from Win32_Process Where Name = 'MSAccess.exe'")
  28. For Each a In aaa
  29.     a.Terminate
  30. Next
  31. End Sub
  32.  
  33. Sub OpenAccess()
  34.     If IsFileOpen(App.Path & "\db1.mdb") = False Then
  35.     ShellExecute Me.hwnd, vbNullString, App.Path & "\db1.mdb", _
  36.     vbNullString, vbNullString, SW_SHOWNORMAL
  37.     End If
  38. End Sub
  39.  
  40. Function IsFileOpen(FileName As String) As Boolean
  41.     Dim filenum As Integer 'truongphu
  42.    filenum = FreeFile()
  43.     On Error Resume Next
  44.     Open FileName For Input Lock Read As #filenum
  45.     Close filenum
  46.     Select Case Err
  47.         Case 0
  48.             IsFileOpen = False
  49.         Case 70
  50.             IsFileOpen = True
  51.         Case Else
  52.     End Select
  53. End Function
  54.  
Attachments
DDE to Request MS Access Data.rar
(8.9 KiB) Downloaded 718 times
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

User avatar
NXK1138
Thành viên năng nổ
Thành viên năng nổ
Posts: 88
Joined: Fri 19/03/2010 1:29 pm
Has thanked: 2 times
Been thanked: 2 times

Re: Đọc và Ghi trên Excel (xls) với TextBox chuẩn

Postby NXK1138 » Tue 09/08/2011 9:34 am

Anh Phú ơi em có thắc mắc là. Hai cái ứng dụng trên của anh khi chạy nó cứ gọi open ứng dụng (excel hoặc access) ra rồi nó mới đóng chứ nó không chạy ở chế độ nền giống như khi ta truy vấn csdl. Có cách nào khắc phục cái đó không ạ?

User avatar
gtdcomputer
Thành viên danh dự
Thành viên danh dự
Posts: 1296
Joined: Fri 18/07/2008 12:08 pm
Location: Kiên Giang
Has thanked: 8 times
Been thanked: 117 times
Contact:

Re: Đọc và Ghi trên Excel (xls) với TextBox chuẩn

Postby gtdcomputer » Tue 09/08/2011 9:45 am

Cái này là link cái text box của mình vào cell trong Access và Excel đang chạy. Tức là nó chạy mình mới bắt nó đc.Thủ thật này giống với thủ thật bắt liên kết đang truy cập trong IE và Firefox. Muốn nó đừng hiện ra thì tìm cái giống này:
  1. Const SW_SHOWNORMAL = 1
Nhưng mà là HIDEN rồi bỏ vô cái ShellExecute
Con người không quan tâm đến sự thật. Họ tin cái họ muốn, và về sau, cái đó sẽ trở thành sự thật


Return to “[VB] Ứng dụng - Form và Control”

Who is online

Users browsing this forum: No registered users and 2 guests