-
RE: [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật
ongke0711 > 13-10-16, 09:18 AM
haha...lúc đầu tôi cũng test trên Immediate và thấy ra tầm bậy rồi nhưng nghĩ cho nó qua trung gian thử và ok.
- Còn vụ Progress bar % thì bó tay rồi. Đối với code xử lý các action query bằng câu lệnh SQL (như bạn Minh Tiên có đề cập) thì không biết làm các nào đếm số record đã cập nhật. Tôi có thử mấy cách như: dùng rs.RecordAffected nhưng nó chỉ cho kết quả sau khi chạy query xong, dùng DCount để đếm số record trong table vừa Append cũng ko đc.
- Demo phân quyền version 1 thì đã OK quá rồi, trực quan, dễ sử dụng. Có phiên bản nâng cấp nữa thì tuyệt vời.
Chờ các bản demo của Dân để học hỏi đây. -
RE: [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật
MTNQ > 15-10-16, 10:55 AM
(13-10-16, 02:00 AM)ongke0711 Đã viết: Cách 1 dùng FileSystemObject tôi làm vẫn lấy được tên file tiếng việt có dấu (unicode) mà maidinhdan.
Import nó vô table trước đã.
Link demo: http://www.mediafire.com/file/w6jf257h90ticvu/LayTenFile.mdb
Dùng ADO Recordset thay cho table luôn đi bác
Mã:Public Sub ListFilesInFolder(ObjBox As Object, strFolderPath As String, _
Optional strFilter As String)
On Error GoTo ErrorHandler
Dim strFileExt As String
Dim objFSO As Object, objFolder As Object, objFile As Object
Dim rstADO As Object
If strFolderPath = vbNullString Then Exit Sub
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strFolderPath)
Set rstADO = CreateObject("ADODB.RecordSet")
Const adLongVarWChar = 203
Const adFldMayBeNull = &H40
Const adOpenForwardOnly = 0
Const adUseClient = 3
Const adLockPessimistic = 2
With rstADO
.Fields.Append "TenFile", adLongVarWChar, 255, adFldMayBeNull
.CursorType = adOpenForwardOnly
.CursorLocation = adUseClient
.LockType = adLockPessimistic
.Open
End With
For Each objFile In objFolder.Files
If strFilter = vbNullString Then
rstADO.AddNew "TenFile", objFile.Name
Else
strFileExt = Mid$(objFile.Name, InStrRev(objFile.Name, ".") + 1)
If InStr(strFilter, strFileExt) > 0 Then rstADO.AddNew "TenFile", objFile.Name
End If
Next
Set ObjBox.Recordset = rstADO
Exit_ErrorHandler:
Set objFSO = Nothing
Set objFolder = Nothing
Set objFile = Nothing
Set rstADO = Nothing
Exit Sub
ErrorHandler:
MsgBox "Err Number: " & Err.Number & vbCrLf & Err.Description, , "Error: ListFilesInFolder"
Resume Exit_ErrorHandler
End Sub
MTNQ mượn cái Demo của bác, thêm vào cái text box để chọn kiểu file cần lấy:
http://www.mediafire.com/file/x8d4pivd4u...nFile2.rar
. -
RE: [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật
ongke0711 > 15-10-16, 01:12 PM
Dùng ADO Recordset này hay thật. Tôi chưa nghiên cứu về nó.
Theo vd này tôi hiểu thì ADO Recordset sẽ lưu giữ các records trong bộ nhớ tạm. Nếu vậy khi cần load những Recordset lớn thì có bất lợi gì không MTNQ? -
RE: [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật
MTNQ > 27-10-16, 01:28 AM
(15-10-16, 01:12 PM)ongke0711 Đã viết: Dùng ADO Recordset này hay thật. Tôi chưa nghiên cứu về nó
.
Theo vd này tôi hiểu thì ADO Recordset sẽ lưu giữ các records trong bộ nhớ tạm. Nếu vậy khi cần load những Recordset lớn thì có bất lợi gì không MTNQ?
Với lượng RAM của các máy bây giờ thì chắc không ảnh hưởng gì mấy
Recordset nào cũng dùng đến bộ nhớ tạm, ADO khác ở chỗ có thể ngắt kết nối (hoặc không kết nối) với nguồn dữ liệu nên thêm các trường (field) thoải mái.
-Trong ví dụ trên MTNQ thêm vào một trường "TenFile" với kiểu adLongVarWChar. Kiểu dữ liệu này hỗ trợ bảng mã Unicode nên có thể hiển thị Tiếng Việt
-Hàm trên chỉ lọc kiểu file một cách tương đối. Nếu bạn nào muốn lọc chính xác thì sửa lại nhé -
RE: [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật
ongke0711 > 27-10-16, 03:19 PM
(10-10-16, 05:36 PM)maidinhdan Đã viết: Tình hình là muốn phát triển 1 Demo liên quan đến chia sẽ file, Rất mong mọi người giúp đỡ và đóng góp hàm này
Tên hàm: Chia sẽ thư mục bằng Code
Nội dung:
Em có thư mục "D:\ThumucA"
Em muốn khi tạo ra 1 nút click để ThumucA sẽ Shared với 1 tên trong cú pháp hàm
Xin cảm ơn.
Trong post trước cũng đề tài này tôi có đóng góp 1 cách dùng hàm SHELL để gọi Cmd.exe chạy cấp quyền cho Users sử dụng Folder nhưng thực sự chưa đúng yêu cầu là “Share folder”.
Lần này tôi post 1 cái demo dùng để share folder đúng nghĩa. Cũng dùng tool cmd.exe để thực hiện lệnh share. Vì tôi cũng chỉ làm trên máy cá nhân, không có máy trong mạng LAN cty để test nên cũng chưa biết nó có phát sinh gì nữa không. Các bạn test hộ và đóng góp giải pháp luôn giùm nhé.
Một số thông tin liên quan:
- Máy tôi dùng Windows 7.
- Khi bật chế độ UAC cao nhất khi chạy cmd.exe nó sẽ hiện cảnh báo để bạn có cho quyền cmd.exe chạy hay không. Nếu tắt UAC, chương trình sẽ chạy, máy tính sẽ không hỏi gì cả.
- Tôi chạy trên quyền Administrator của laptop.
Cái này là UAC của Windows sẽ hỏi, bạn chỉ cần bấm OK cho chạy là được.
Link file demo: http://www.mediafire.com/file/1np1e21oq9...Folder.mdb -
RE: [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật
maidinhdan > 27-10-16, 09:48 PM
(27-10-16, 03:19 PM)ongke0711 Đã viết: Trong post trước cũng đề tài này tôi có đóng góp 1 cách dùng hàm SHELL để gọi Cmd.exe chạy cấp quyền cho Users sử dụng Folder nhưng thực sự chưa đúng yêu cầu là “Share folder”.
Lần này tôi post 1 cái demo dùng để share folder đúng nghĩa. Cũng dùng tool cmd.exe để thực hiện lệnh share. Vì tôi cũng chỉ làm trên máy cá nhân, không có máy trong mạng LAN cty để test nên cũng chưa biết nó có phát sinh gì nữa không. Các bạn test hộ và đóng góp giải pháp luôn giùm nhé.
Một số thông tin liên quan:
- Máy tôi dùng Windows 7.
- Khi bật chế độ UAC cao nhất khi chạy cmd.exe nó sẽ hiện cảnh báo để bạn có cho quyền cmd.exe chạy hay không. Nếu tắt UAC, chương trình sẽ chạy, máy tính sẽ không hỏi gì cả.
- Tôi chạy trên quyền Administrator của laptop.
Link file demo: http://www.mediafire.com/file/1np1e21oq9...Folder.mdb
Thật là tuyệt vời, Đã test chạy trên WinXp, Window8 ( Login với quyền Administrator nhé, quyền khác nó không chạy )
Góp ý thì không có nó rất hay rồi, chủ yếu chỉnh nút BrowseFolder cho dể dùng thôi.
Đề xuất dùng hàm này luôn.
Mã PHP:Private Sub cmdBrowse_Click()
Dim dlgopen As FileDialog
Dim strFolder As String
Set dlgopen = Application.FileDialog(msoFileDialogFolderPicker)
strFolder = "Chưa chọn folder nào cả"
With dlgopen
If .Show = -1 Then
strFolder = dlgopen.SelectedItems(1)
Me.txtPath = strFolder
End If
End With
End Sub -
RE: [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật
ongke0711 > 28-10-16, 11:18 AM
(27-10-16, 09:48 PM)maidinhdan Đã viết: Đề xuất dùng hàm này luôn.
Mã PHP:Private Sub cmdBrowse_Click()
Dim dlgopen As FileDialog
Dim strFolder As String
Set dlgopen = Application.FileDialog(msoFileDialogFolderPicker)
strFolder = "Chưa chọn folder nào cả"
With dlgopen
If .Show = -1 Then
strFolder = dlgopen.SelectedItems(1)
Me.txtPath = strFolder
End If
End With
End Sub
Trong demo mình dùng cái Shell.Application của windows luôn để khỏi phải khi báo thư viện "Microsoft Office 14.0 Object Library".
Nếu dùng FileDialog như bác Dân gợi ý thì mình sửa chút, đổi sang late binding cũng để tránh khai báo thư viện.
Mã PHP:Dim dlgopen As Object 'FileDialog'
Dim strFolder As String
Set dlgopen = Application.FileDialog(4) '(msoFileDialogFolderPicker) -
RE: [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật
phungminhluan > 24-03-17, 08:41 PM
Tôi có một ứng dụng quản lý đối tượng mà có hình ảnh. Các file hình tôi cho nằm trong thư mục Anh nằm chung thư mục với ứng dụng. Trường ảnh chỉ lưu đường dẫn đến file hình. Trên form nhập liệu thì cho hiện ảnh theo đường dẫn trong trường Anh. Có điều chỉ áp dụng được trong máy nhập dữ liệu thôi, tôi muốn khi tôi chọn nút chọn ảnh xong thì nó sẽ lấy về đường dẫn của file ảnh kèm theo là địa chỉ ip tên máy tính hiện hành lưu vào trường ảnh để khi tôi mở form trên máy tính khác nối mạng lan với máy tính của tôi thì nó vẫn hiện file ảnh mà tôi nhập vào đó. Mong mọi người giúp đỡ. Xin cảm ơn mọi người! -
RE: [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật
maidinhdan > 24-03-17, 09:12 PM
(24-03-17, 08:41 PM)phungminhluan Đã viết: Tôi có một ứng dụng quản lý đối tượng mà có hình ảnh. Các file hình tôi cho nằm trong thư mục Anh nằm chung thư mục với ứng dụng. Trường ảnh chỉ lưu đường dẫn đến file hình. Trên form nhập liệu thì cho hiện ảnh theo đường dẫn trong trường Anh. Có điều chỉ áp dụng được trong máy nhập dữ liệu thôi, tôi muốn khi tôi chọn nút chọn ảnh xong thì nó sẽ lấy về đường dẫn của file ảnh kèm theo là địa chỉ ip tên máy tính hiện hành lưu vào trường ảnh để khi tôi mở form trên máy tính khác nối mạng lan với máy tính của tôi thì nó vẫn hiện file ảnh mà tôi nhập vào đó. Mong mọi người giúp đỡ. Xin cảm ơn mọi người!
Trả lời:
Anh có thể dùng hàm Replace của hệ thống trong nút chọn ảnh lưu đường dẫn, để thay đường dẫn đến folder lưu ảnh.
Ở đây có 2 trường hợp cần xét đến
1. Thay đường dẫn ngay ở nút chọn link file
2. Thay đường dẫn khi load xem hình ( tôi thì dùng cái này)
Ví dụ hàm Replace:
Cú pháp (Syntax)
Mã PHP:Replace(Đường dẫn file ảnh, Vungluu, IPVungChiase)
Trong đó:
+ Đường dẫn file ảnh: ( "D:\Vungluuanh\Hinh1.jpg")
+ Vungluu là folder chứa ảnh: ( "D:\Vungluuanh")
+ IPVungChiase là địa chỉ IP đến thư mục được Shared ("\\192.168.1.4\TenFolderShared\")
Như vậy nó sẽ ra kết quả là: "\\192.168.1.4\TenFolderShared\Hinh1.jpg"
Bạn tự chế vào đâu tùy bạn, mình chỉ hướng dẫn cách dùng hàm replace thôi.
Lời khuyên nên dùng trường hợp 2.
Thân mến! -
RE: [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật
phungminhluan > 22-10-17, 10:22 PM
Hôm nay xin nhờ ace giúp đỡ như sau: mình muốn tạo code cho nút lệnh chọn file hình ảnh dùng hàm getfile nhưng sau khi chọn file xong thì copy file đã chọn qua thư mục chỉ định đồng thời đổi tên file đó theo cấu trúc tên định sẵn là mã đối tượng+ các chữ cái đầu trong tên đối tượng +năm sinh của đối tượng liên quan trong cùng record, sau đó mới lấy đường dẫn của file mới đổi tên lưu vào textBOx