Hỏi về Control tương tự như listview nhưng cho phép nhập dữ liệu trên nó

Liên hệ QC

hoangdanh282vn

Nguyễn Cảnh Hoàng Danh
Thành viên danh dự
Tham gia
21/12/07
Bài viết
1,902
Được thích
5,303
Nghề nghiệp
Kinh doanh các mặt hàng văn phòng phẩm
Mình thấy một số phần mềm có phần để nhập liệu tương tự như listview. Các bạn cho mình hỏi là nó thuộc dạng control nào. Trong VBA có loại control này không?

Trong phần mềm HTKK, trên Form mình thầy có thanh Scrollbar để cuộn lên xuống màn hình nhập liệu (VD như phần Tờ khai thuế GTGT). Trong VBA mình có cách nào để có được chức năng tương tự như vậy không?

Mình xin cảm ơn
 
Theo ý kiến các bạn mình gửi 1 ví dụ liệt kê chứng từ KT.
Mạn phép Ca da_fi sửa Form của bạn, máy của mình không thể thêm được đối tượng mới khổ chứ.
Ndu: Cái khó là không hiển thị tiếng Việt chứ tiếng Anh thì có sao đâu
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Em cùng quan điểm với anh ndu, không hỗ trợ font Unicode thì khó thực hiện lắm. Cho dù làm với người nước ngoài đi chăng nữa nhưng đó chỉ là số ít thôi. Không phải 100% dân VN ta đều làm cho tây và dùng ngôn ngữ tây phải không các bác.
 
Upvote 0
Hì hì! Sao làm biếng vậy anh! Nếu làm việc cho nước ngoài thì mắc gì phải dùng Tiếng Việt Unicode!? Sao không dùng tiếng Anh luôn thể nhỉ?
Vâng! Đương nhiên là xài tiếng Anh, nhưng ác 1 cái là hầu hết các ông Sếp đều muốn đa ngôn ngử ---> Như cty tôi, 1 báo cáo luôn phải có 3 thứ tiếng: Anh, Hàn, Việt ---> Vậy theo Kiệt thì làm sao đây? Có phải chỉ có Unicode mới đáp ứng được nhu cầu này không?
Ẹc... Ẹc...
 
Upvote 0
File của Ca_dafi khi mở lên nó hiện ra cái này

attachment.php

File mình làm thử, khi hiện ra thông báo này, nếu bấm nút Yes và kết hợp với đoạn code hủy bỏ các thông báo lỗi tiếp theo thì chương trình vẫn hoạt động tốt.

Các bạn cho mình hỏi có cách nào để bỏ qua thông báo ở hình trên không. Hoặc làm cách nào để tự động bấm nút yes và ẩn thông báo này đi luôn không. Chứ khi làm phần mềm mà phải lo cái vụ Update Office cho khách hàng thì chắc không ổn.
 
Upvote 0
File mình làm thử, khi hiện ra thông báo này, nếu bấm nút Yes và kết hợp với đoạn code hủy bỏ các thông báo lỗi tiếp theo thì chương trình vẫn hoạt động tốt.

Các bạn cho mình hỏi có cách nào để bỏ qua thông báo ở hình trên không. Hoặc làm cách nào để tự động bấm nút yes và ẩn thông báo này đi luôn không. Chứ khi làm phần mềm mà phải lo cái vụ Update Office cho khách hàng thì chắc không ổn.
Danh làm thế này xem:
1> Start\Run\Regedit
2> Duyệt tới key:
HKEY_CURRENT_USER\Software\Microsoft\VBA\Security
Lưu ý: Nếu chưa có Key Security thì bạn tự tạo lấy
3> Click phải khung bên phải của Security, chọn New\DWORD Value với các thông số sau:
Value Name = LoadControlsInForms
Value Data = 1

4> Đóng Registry và chạy lại file Excel xem thử
Hoặc đơn giản, bạn Export file đính kèm này vào Registry là xong
 

File đính kèm

Upvote 0
Các THẦY, các ANH ơi, sau khi tải File Sd VSFlex3.0.rar về nó báo lỗi liên tục, vào trong References... bỏ chọn 2 cái MISSING là Vflex gì đó và 1 cái common control (SP4) lại báo lỗi tiếp ngay Sub loaddl()
If Not c Is Nothing Then
Me.Txt_So = c.Text
Me.Txt_Ngay = c.Offset(, -1)
Lỗi báo như sau: Method or data member not found.


Cũng nói thêm là ngay ngày hôm qua thôi vẫn còn xài chức năng Additional Control... để chọn Listview Control, hôm nay không xài được nữa, chọn vào là nó chuyển ngay đến cái nút Toolbox. Các Anh, Chị cho biết lý do lỗi "ngang xương" này được không ạ? Cách khắc phục như thế nào? (Đừng nói với em là cài lại Win nha).-+*/-+*/-+*/
 
Upvote 0
Danh làm thế này xem:
1> Start\Run\Regedit
2> Duyệt tới key:
HKEY_CURRENT_USER\Software\Microsoft\VBA\Security
Lưu ý: Nếu chưa có Key Security thì bạn tự tạo lấy
3> Click phải khung bên phải của Security, chọn New\DWORD Value với các thông số sau:
Value Name = LoadControlsInForms
Value Data = 1

4> Đóng Registry và chạy lại file Excel xem thử
Hoặc đơn giản, bạn Export file đính kèm này vào Registry là xong

Nếu làm như vậy thì mình phải trực tiếp thao tác rồi.
ý của em là khi viết chương trình cho khách hàng sử dụng. Nếu gặp lỗi trên thì có cách nào (Viết code trong file excel chương trình) để nó tự động hoàn thiện luôn. Thay vì phải thao tác bằng tay thì làm sao cho Excel nó thay mình xử lý.
 
Upvote 0
Nếu làm như vậy thì mình phải trực tiếp thao tác rồi.
ý của em là khi viết chương trình cho khách hàng sử dụng. Nếu gặp lỗi trên thì có cách nào (Viết code trong file excel chương trình) để nó tự động hoàn thiện luôn. Thay vì phải thao tác bằng tay thì làm sao cho Excel nó thay mình xử lý.
Cũng dể thôi:
- Bạn tạo 1 file .BAT, bảo người ta chạy trước file này
- File BAT sẽ làm nhiệm vụ copy mscomct2.ocx vào thư mục System32 đồng thời Import luôn file .REG (2 file này ta đính kèm sẳn)
2 tiến trình này thậm chí có thể làm luôn bằng VBA (trong sự kiện WorkBook_Open)
Làm bằng tay được, lý nào tự động lại không xong!
Các THẦY, các ANH ơi, sau khi tải File Sd VSFlex3.0.rar về nó báo lỗi liên tục, vào trong References... bỏ chọn 2 cái MISSING là Vflex gì đó và 1 cái common control (SP4) lại báo lỗi tiếp ngay Sub loaddl()
.
Xem lại bài số #3
 
Upvote 0
Cũng dể thôi:
- Bạn tạo 1 file .BAT, bảo người ta chạy trước file này
- File BAT sẽ làm nhiệm vụ copy mscomct2.ocx vào thư mục System32 đồng thời Import luôn file .REG (2 file này ta đính kèm sẳn)
2 tiến trình này thậm chí có thể làm luôn bằng VBA (trong sự kiện WorkBook_Open)
Làm bằng tay được, lý nào tự động lại không xong!

Xem lại bài số #3

Em thì không rành cái vụ .Bat và .Reg lắm. Nếu có thể được, nhờ anh giúp ạ.
 
Upvote 0
Em thì không rành cái vụ .Bat và .Reg lắm. Nếu có thể được, nhờ anh giúp ạ.
Thôi.. làm bằng VBA luôn nha!
1> Code copy 1 file vào 1 nơi nào đó thì khỏi nói rồi
2> Import 1 file .REG vào Registry thật đơn giản đến không ngờ:
PHP:
Sub Test()
  Dim sFilename As String
  sFilename = "D:\MyReg.reg"   '<---- Đường dẩn chứa file Reg
  Shell "reg import """ & sFilename & """"
End Sub
Hoặc:
PHP:
Sub Test()
  Dim sFilename As String
  sFilename = "D:\MyReg.reg"   '<---- Đường dẩn chứa file Reg
  Shell "regedit.exe /s """ & sFilename & """"
End Sub
Trong đó MyReg.reg là tên file REG của ta!
Khi tạo 1 chương trình, ta cho code Copy file và code này vào sự kiện Workbook_Open là xong!
 
Upvote 0
Xin vui lòng cho hỏi lại

Ngay hôm qua tôi vẫn còn xài chức năng Additional Control... để chọn Listview Control, hôm nay không xài được nữa, chọn vào là nó chuyển ngay đến cái nút Toolbox. Các Anh, Chị cho biết lý do lỗi này được không ạ? Cách khắc phục như thế nào?
Cám ơn rất nhiều.
 
Upvote 0
Ngay hôm qua tôi vẫn còn xài chức năng Additional Control... để chọn Listview Control, hôm nay không xài được nữa, chọn vào là nó chuyển ngay đến cái nút Toolbox. Các Anh, Chị cho biết lý do lỗi này được không ạ? Cách khắc phục như thế nào?
Cám ơn rất nhiều.
Vậy thì xin CHIA BUỒN cùng bạn chứ biết làm sao!
- Nguyên nhân: Nhiều lắm.. và người ta cũng chỉ đoán chừng thôi
- Cách khắc phục: chỉ có 1 cách duy nhất ---> CÀI LẠI WINDOWS +-+-+-+ +-+-+-+ +-+-+-+
Ẹc... Ẹc...
 
Upvote 0
Vậy thì xin CHIA BUỒN cùng bạn chứ biết làm sao!
- Nguyên nhân: Nhiều lắm.. và người ta cũng chỉ đoán chừng thôi
- Cách khắc phục: chỉ có 1 cách duy nhất ---> CÀI LẠI WINDOWS +-+-+-+ +-+-+-+ +-+-+-+
Ẹc... Ẹc...

Trời, lỗi này em đã xem qua nhiều lần tại diễn đàn này rồi, tưởng thời gian qua có cách khắc phục nó chứ. Có khi nào là máy em bị virus không nhỉ?
 
Upvote 0
Trời, lỗi này em đã xem qua nhiều lần tại diễn đàn này rồi, tưởng thời gian qua có cách khắc phục nó chứ. Có khi nào là máy em bị virus không nhỉ?
Tôi không nghĩ đó là virus ---> Có lẽ có sự "tranh chấp" nào đó trong quá trình chạy code (load các ActiveX Control chẳng hạn)... vân vân và vân vân...
Nói chung là bạn có thể yên tâm về vấn đề virus... nhưng phải "bận tâm" khá nhiều để khắc phục lổi này: Cái lại Windows và tất cả các phần mềm
 
Upvote 0
Theo ý kiến các bạn mình gửi 1 ví dụ liệt kê chứng từ KT.
Mạn phép Ca da_fi sửa Form của bạn, máy của mình không thể thêm được đối tượng mới khổ chứ.
Ndu: Cái khó là không hiển thị tiếng Việt chứ tiếng Anh thì có sao đâu

em thấy trong form có đoạn code Public Function FG_AutosizeCols Sao cái này nó không Wordwrap.+-+-+-+

PHP:
Public Function FG_AutosizeCols(myGrid As vsFlexArray, Optional ByVal lFirstCol As Long = -1, Optional ByVal lLastCol As Long = -1, Optional bCheckFont As Boolean = False)
   Dim lCol As Long, lRow As Long, lCurCol As Long, lCurRow As Long
   Dim lCellWidth As Long, lColWidth As Long
   Dim bFontBold As Boolean
   Dim dFontSize As Double
   Dim sFontName As String
   If bCheckFont Then
      ' save the forms font settings
      bFontBold = Me.FontBold
      sFontName = Me.FontName
      dFontSize = Me.FontSize
   End If
   With myGrid
      If bCheckFont Then
         lCurRow = .Row
         lCurCol = .Col
      End If
      If lFirstCol = -1 Then lFirstCol = 0
      If lLastCol = -1 Then lLastCol = .Cols - 1
      For lCol = lFirstCol To lLastCol
         lColWidth = 0
         If bCheckFont Then .Col = lCol
         For lRow = 0 To .Rows - 1
            If bCheckFont Then
               .Row = lRow
               Me.FontBold = .CellFontBold
               Me.FontName = .CellFontName
               Me.FontSize = .CellFontSize
            End If
            lCellWidth = Me.TextWidth(.TextMatrix(lRow, lCol))
            If lCellWidth > lColWidth Then lColWidth = lCellWidth
         Next lRow
         .ColWidth(lCol) = lColWidth + Me.TextWidth("W")
      Next lCol
      If bCheckFont Then
         .Row = lCurRow
         .Col = lCurCol
      End If
   End With
   If bCheckFont Then
      ' restore the forms font settings
      Me.FontBold = bFontBold
      Me.FontName = sFontName
      Me.FontSize = dFontSize
   End If
End Function
 
Upvote 0
Web KT

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

Back
Top Bottom