Thủ Thuật Access
[Hỏi] Tiêu đề listbox tiếng việt khi đã kết nối SQL server - Phiên bản có thể in

+- Thủ Thuật Access (http://thuthuataccess.com/forum)
+-- Diễn đàn: Access Cơ Bản (http://thuthuataccess.com/forum/forum-5.html)
+--- Diễn đàn: Forms (http://thuthuataccess.com/forum/forum-8.html)
+--- Chủ đề: [Hỏi] Tiêu đề listbox tiếng việt khi đã kết nối SQL server (/thread-10292.html)

Pages: 1 2


Tiêu đề listbox tiếng việt khi đã kết nối SQL server - mrsiro - 06-12-17

Chào các bạn hiện tại mình đã load dc dữ liệu từ SQL server vào listbox trên form, có điều dòng tiêu đề của từng field trong listbox nó lấy theo tên field trên sqlserver, vậy có cách nào đặt lại tiêu đề này thành chữ tiếng việt không.


RE: Tiêu đề listbox tiếng việt khi đã kết nối SQL server - ongke0711 - 07-12-17

Bạn chỉ có thể làm giả tiêu đề cột bằng cách đặt thủ công mấy cái label sát lên trên Listbox rồi thiết lập cố định độ của từng cột trong listbox = độ rộng của label thôi.


RE: Tiêu đề listbox tiếng việt khi đã kết nối SQL server - mrsiro - 07-12-17

Khổ nổi listbox của mình nó nhiều field cần phải dùng đến cả thanh kéo ngang, dùng kiểu label giả mình cũng nghĩ tới, nhưng chỉ dc hết chiều rộng của form, còn listbox của mình nó nhiều cột lắm.


RE: Tiêu đề listbox tiếng việt khi đã kết nối SQL server - lehongduc - 08-12-17

Chào các Bạn,

Có một cách rất đơn giản là ta dùng câu lệnh SQL truy xuất dữ liệu từ bảng theo dạng thức sau đây:

SELECT dbo.tblProduct.ProductId AS [Mã số Hàng hóa], dbo.tblProduct.ProductName AS [Tên Hàng hóa], ...

Và khai báo thuộc tính ColumnHeads của ListBox = True


RE: Tiêu đề listbox tiếng việt khi đã kết nối SQL server - mrsiro - 09-12-17

(08-12-17, 06:45 PM)lehongduc Đã viết: Chào các Bạn,

Có một cách rất đơn giản là ta dùng câu lệnh SQL truy xuất dữ liệu từ bảng theo dạng thức sau đây:

SELECT dbo.tblProduct.ProductId AS [Mã số Hàng hóa], dbo.tblProduct.ProductName AS [Tên Hàng hóa], ...

Và khai báo thuộc tính ColumnHeads của ListBox = True
Cách này mình cũng đã nghĩ tới, nhưng trong câu lệnh vba không thể viết unicode dc nên as unicode không được rồi.


RE: Tiêu đề listbox tiếng việt khi đã kết nối SQL server - lehongduc - 10-12-17

(09-12-17, 04:49 PM)mrsiro Đã viết:
(08-12-17, 06:45 PM)lehongduc Đã viết: Chào các Bạn,

Có một cách rất đơn giản là ta dùng câu lệnh SQL truy xuất dữ liệu từ bảng theo dạng thức sau đây:

SELECT dbo.tblProduct.ProductId AS [Mã số Hàng hóa], dbo.tblProduct.ProductName AS [Tên Hàng hóa], ...

Và khai báo thuộc tính ColumnHeads của ListBox = True
Cách này mình cũng đã nghĩ tới, nhưng trong câu lệnh vba không thể viết unicode dc nên as unicode không được rồi.

Bạn xem giải pháp ở đây nhé: http://thuthuataccess.com/forum/post-37722.html#pid37722


RE: Tiêu đề listbox tiếng việt khi đã kết nối SQL server - MTNQ - 10-12-17

(10-12-17, 10:00 AM)lehongduc Đã viết:
(09-12-17, 04:49 PM)mrsiro Đã viết:
(08-12-17, 06:45 PM)lehongduc Đã viết: Chào các Bạn,

Có một cách rất đơn giản là ta dùng câu lệnh SQL truy xuất dữ liệu từ bảng theo dạng thức sau đây:

SELECT dbo.tblProduct.ProductId AS [Mã số Hàng hóa], dbo.tblProduct.ProductName AS [Tên Hàng hóa], ...

Và khai báo thuộc tính ColumnHeads của ListBox = True
Cách này mình cũng đã nghĩ tới, nhưng trong câu lệnh vba không thể viết unicode dc nên as unicode không được rồi.

Bạn xem giải pháp ở đây nhé: http://thuthuataccess.com/forum/post-37722.html#pid37722

Ngoài giải pháp như bác lehongduc thì còn cách khác cũng khá đơn giản là bạn viết câu lệnh SQL có sử dụng Tiếng Việt vào một table (VD tblTiengViet) sau đó dùng hàm DLookup (hoặc một hàm tự tạo nào đó) để gọi ra:

Mã:
Dim strSQl As String
   strSQl = DLookup("[txt1]", "[tblTiengViet]", "[TVID]='Sql1'")
   strSQl = strSQl & " FROM Table1"
   List0.RowSource = strSQl



RE: Tiêu đề listbox tiếng việt khi đã kết nối SQL server - mrsiro - 10-12-17

Xin cám ơn lehongduc và MTNQ, hiện tại mình đã nghĩ ra cách như thế này, thay vì mình dùng sql trong vba để lấy recordset từ sqlserver về thì mình thay thế bằng cách gọi store produce trên sqlserver, mình đã gọi được store bằng khai báo ADODB.Command, nhưng đến đây thì mình gặp khó khăn ở chổ làm cách nào để gán giá trị của store produce vào recordset để thể hiện vào listbox. Có thể giúp mình được không,


RE: Tiêu đề listbox tiếng việt khi đã kết nối SQL server - hieuvn - 11-12-17

(10-12-17, 03:03 PM)mrsiro Đã viết: Xin cám ơn lehongduc và MTNQ, hiện tại mình đã nghĩ ra cách như thế này, thay vì mình dùng sql trong vba để lấy recordset từ sqlserver về thì mình thay thế bằng cách gọi store produce trên sqlserver, mình đã gọi được store bằng khai báo ADODB.Command, nhưng đến đây thì mình gặp khó khăn ở chổ làm cách nào để gán giá trị của store produce vào recordset để thể hiện vào listbox. Có thể giúp mình được không,

làm được đến đây rồi thì còn gì nữa mà không làm tiếp được nhể, giống như cởi được quần rồi nằm ngủ lun! kaka happy
bạn set recordset cho listbox là ADODB.recordset thôi, ví dụ:

Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset

rs= (...code mà bạn dùng để lấy recordset từ storedprocedure)

with myListbox
.ColumnCount =số field trả về trong storedprocedure
.ColumnWidths = tương ứng với độ rộng từng cột bạn mong muốn ví du: "0;1" (bạn nên set trên form đỡ bị lỗi)
.RowSourceType = "Value"

set .Recordset = rs
end with

(code viết chay chưa test)
Have fun


RE: Tiêu đề listbox tiếng việt khi đã kết nối SQL server - mrsiro - 11-12-17

Qúa tuyệt vời mình đã làm được. Cho mình hỏi thêm cái này nữa nhé, bình thường nếu mình dùng câu lệnh sql để gán recordset thì mình có thể đưa điều kiện vào where trong sql  ví dụ như sau: Where mahd = me.txtmahd chẳng hạn. Còn nếu dùng store procedure thì làm sao truyền điều kiện = me.txtmahd vào cái store procedure đó được.