• [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật
  • 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

    014 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ó 007
    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ó 007
    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  015
    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é  007
  • 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é.  007
    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.

    [Hình: 29962180514_0e97bd0888_z.jpg]

    [Hình: 29962180224_767f1df7d2_z.jpg]

    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.

    [Hình: 29962180334_0503cff671_n.jpg]



    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é.  007
    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 ảnhVungluuIPVungChiase


    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