• [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

    maidinhdan > 24-10-17, 12:25 AM

    (22-10-17, 10:22 PM)phungminhluan Đã viết: 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

    Cuối tuần nếu rãnh thì Deomo cho, vì đang đi học.

    Thân mến và chúc sức khỏe.
  • RE: [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật

    ongke0711 > 24-10-17, 01:02 PM

    (22-10-17, 10:22 PM)phungminhluan Đã viết: 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


    Ý tưởng này của bạn cũng rất hay. Đang thất học nên rảnh làm demo cho bạn thay bạn maidinhdan.   007 007  


    - Bạn đã dùng FileSystemObject cho hàm getFile thì dùng phương thức CopyFile của nó luôn cho việc copy file từ folder này sang folder khác luôn.
    - Hàm tự tạo CopyFileHinh(). Dùng phương thức fso.CopyFile.

    Mã PHP:
    Function CopyFileHinh(strImagePath As StringstrFolderPath As String)
       Dim answer As Integer
       Dim fso 
    As Object
       
       Set fso 
    VBA.CreateObject("Scripting.FileSystemObject")
       If fso.FileExists(strFolderPathThen
           answer 
    MsgBox("File da ton tai o foleder nay. " _
                           
    "Ban co muon tiep tuc? Neu tiep luc Luu, " _
                           
    "file cu se bi xoa!"_
                           vbInformation 
    vbYesNo)
           If answer vbNo Then
               Exit 
    Function
           End If
           Kill strFolderPath
       End 
    If
       CopyFileHinh fso.CopyFile(strImagePathstrFolderPathTrue)
       Set fso Nothing
    End 
    Function 


    - Code cho nút lệnh copy file ảnh. Trong code này tôi có sử dụng hàm ConvertToUnsign() để chuyển ký tự tiếng Việt có dấu thành không dấu để lưu vào tên file như bạn yêu cầu (để tránh lỗi phát sinh). Vd: nhân viên tên Đức -> ký tự đầu là "Đ" -> chuyển thành "D".

    Mã PHP:
    Private Sub cmdThemHinh_Click()
       Dim strHinh As String
       Dim strFolderLuuHinh 
    As String
       Dim strHinhLuu 
    As String
       Dim strTenFileHinh 
    As String
       Dim strTen 
    As String

       strTen 
    ConvertToUnSign(Mid(Me.txtTenNVInStrRev(Me.txtTenNV" ") + 11))    'Chuyen sang tieng Viet khong dau de tranh loi'
       strTenFileHinh Me.txtMaNV strTen Format(Me.txtNamSinh"ddmmyyyy") & ".jpg"

       strHinh getFile
       If strHinh 
    "" Then
           MsgBox 
    "Ban khong chon file nao."vbCritical"Canh bao"
           Exit Sub
       End 
    If
       
       If MsgBox
    ("Chon Folder de luu anh nhân viên"vbInformation vbOKCancel"Chon Folder luu") = vbCancel Then
           Exit Sub
       Else
           strFolderLuuHinh 
    getFolder
           If strFolderLuuHinh 
    "" Then
               MsgBox 
    "Ban khong chon Folder nao de luu."vbCritical"Canh bao"
               Exit Sub
           Else
               strHinhLuu 
    strFolderLuuHinh "\" & strTenFileHinh
               CopyFileHinh strHinh, strHinhLuu
               Me.txtHinh = strHinhLuu
               'Debug.Print strHinh & vbCrLf; strFolderLuuHinh & vbCrLf; strHinhLuu
           End If
       End If

    End Sub 

    - Hàm chuyển thành tiếng Việt không dấu - ConvertToUnSign().

    Mã PHP:
    Function ConvertToUnSign(ByVal sContent As String) As String

       Dim i 
    As Long
       Dim intCode 
    As Long
       Dim sChar 
    As String
       Dim sConvert 
    As String

       ConvertToUnSign 
    AscW(sContent)
       For i 1 To Len(sContent)
           sChar Mid(sContenti1)
           If sChar <> "" Then
               intCode 
    AscW(sChar)
           End If
           Select Case intCode
           Case 273
               sConvert 
    sConvert "d"
           Case 272
               sConvert 
    sConvert "D"
           Case 224225226227259784178437845784778497851785378557857785978617863
               sConvert 
    sConvert "a"
           Case 192193194195258784078427844784678487850785278547856785878607862
               sConvert 
    sConvert "A"
           Case 23223323478657867786978717873787578777879
               sConvert 
    sConvert "e"
           Case 20020120278647866786878707872787478767878
               sConvert 
    sConvert "E"
           Case 23623729778817883
               sConvert 
    sConvert "i"
           Case 20420529678807882
               sConvert 
    sConvert "I"
           Case 242243244245417788578877889789178937895789778997901790379057907
               sConvert 
    sConvert "o"
           Case 210211212213416788478867888789078927894789678987900790279047906
               sConvert 
    sConvert "O"
           Case 2492503614327909791179137915791779197921
               sConvert 
    sConvert "u"
           Case 2172183604317908791079127914791679187920
               sConvert 
    sConvert "U"
           Case 2537923792579277929
               sConvert 
    sConvert "y"
           Case 2217922792479267928
               sConvert 
    sConvert "Y"
           Case Else
               sConvert sConvert sChar
           End Select
       Next

       ConvertToUnSign 
    sConvert

    End 
    Function 

    Link file demo: http://www.mediafire.com/file/8uyli055p1...Folder.mdb
  • RE: [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật

    maidinhdan > 25-10-17, 10:21 PM

    (24-10-17, 01:02 PM)ongke0711 Đã viết:
    Mã PHP:
    Function CopyFileHinh(strImagePath As StringstrFolderPath As String)
       Dim answer As Integer
       Dim fso 
    As Object
       
       Set fso 
    VBA.CreateObject("Scripting.FileSystemObject")
       If fso.FileExists(strFolderPathThen
           answer 
    MsgBox("File da ton tai o foleder nay. " _
                           
    "Ban co muon tiep tuc? Neu tiep luc Luu, " _
                           
    "file cu se bi xoa!"_
                           vbInformation 
    vbYesNo)
           If answer vbNo Then
               Exit 
    Function
           End If
           Kill strFolderPath
       End 
    If
       CopyFileHinh fso.CopyFile(strImagePathstrFolderPathTrue)
       Set fso Nothing
    End 
    Function 
    Link file demo: http://www.mediafire.com/file/8uyli055p1...Folder.mdb

    Xin góp ý cho hàm CopyFileHinh như sau:
    Mã PHP:
    Function CopyFileHinh(strImagePath As StringstrFolderPath As String)
       Dim answer As Integer
       Dim fso 
    As Object
       
       Set fso 
    VBA.CreateObject("Scripting.FileSystemObject")
    If 
    strImagePath<> strFolderPath then CopyFileHinh fso.CopyFile(strImagePathstrFolderPathTrue)
       Set fso Nothing
    End 
    Function 

    Lý do: Nếu file Chọn cùng với thư mục chọn thì sẽ gây lỗi, bởi hàm Kill strFolderPath đã xóa mất file đó rồi thì nhảy đến lệnh CopyFileHinh = fso.CopyFile(strImagePath, strFolderPath, True) không tim thấy hình để copy.

    Vì vậy ở trường hợp này chỉ cần so sánh strImagePath khác với strFolderPath là cho Copy ngay.

    Góp ý 2, là Chỉnh tên trong đối số hàm CopyFileHinh;
    strImagePath: LinkFileChon hoặc đồi thành từ strFilePathOld
    strFolderPath: LinkFileNoiLuu  ( tránh dùng strFolderPath gây hiểu nhầm là chỉ có đường dẫn Folder mà không có tên file hoặc đổi thành từ strFilePathNew)
  • RE: [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật

    phungminhluan > 26-11-17, 01:24 PM

    Mình chưa ứng dụng thử nhưng xin cảm ơn 2 bạn rất nhiều!
  • RE: [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật

    phungminhluan > 23-04-18, 01:37 PM

    Hoạt động hoàn hảo luôn, cảm ơn mọi người rất nhiều!
  • RE: [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật

    bvchauthanh > 14-10-19, 03:59 PM

    Tiêu đề: Cách lưu hình ảnh vào trong table
    Nội dung:
    Hiện mình muốn tạo form để lưu hình ảnh vào trong table với trường có kiểu attachment. Mong mọi người giúp đỡ. Chân thành cám ơn

    p/s: lưu trực tiếp từ table mình làm được, nhưng muốn tạo form để chọn file ảnh để lưu giống như lưu đường dẫn file ảnh vậy đó
  • RE: [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật

    ongke0711 > 14-10-19, 05:36 PM

    (14-10-19, 03:59 PM)bvchauthanh Đã viết: Tiêu đề: Cách lưu hình ảnh vào trong table
    Nội dung:
    Hiện mình muốn tạo form để lưu hình ảnh vào trong table với trường có kiểu attachment. Mong mọi người giúp đỡ. Chân thành cám ơn

    p/s: lưu trực tiếp từ table mình làm được, nhưng muốn tạo form để chọn file ảnh để lưu giống như lưu đường dẫn file ảnh vậy đó

    Bạn xem bài này: https://thuthuataccess.com/forum/post-29...l#pid29691

    Tôi dùng Image Control và lưu đường dẫn (Text) ảnh vào table chứ không dùng Field kiểu OLE Object hoặc Attachment.
    - Lưu đường dẫn thì sẽ không làm file CSDL nặng thêm.
    - Lưu kiểu Attachment, OLE là lưu trực tiếp vào Table. Làm dung lượng file accbd, mdb sẽ phình lên nếu nhiều hình.
  • RE: [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật

    bvchauthanh > 14-10-19, 08:19 PM

    (14-10-19, 05:36 PM)ongke0711 Đã viết: Bạn xem bài này: https://thuthuataccess.com/forum/post-29...l#pid29691

    Tôi dùng Image Control và lưu đường dẫn (Text) ảnh vào table chứ không dùng Field kiểu OLE Object hoặc Attachment.
    - Lưu đường dẫn thì sẽ không làm file CSDL nặng thêm.
    - Lưu kiểu Attachment, OLE là lưu trực tiếp vào Table. Làm dung lượng file accbd, mdb sẽ phình lên nếu nhiều hình.

    Tks ongke0711 đã trả lời, vì mình chỉ cần lưu vài hình + tránh người dùng lỡ tay xóa => mất file, nên lấy ý tưởng nhét hình vào database, lục internet cả buổi chiều cuối cùng cũng có cách, nhưng giờ muốn hiển thị file Attachment đó lên control Image đang gặp khó, có cao nhân nào giúp mình 1 tay với! tks all!
  • RE: [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật

    bvchauthanh > 14-10-19, 09:38 PM

    (14-10-19, 08:19 PM)bvchauthanh Đã viết:
    (14-10-19, 05:36 PM)ongke0711 Đã viết: Bạn xem bài này: https://thuthuataccess.com/forum/post-29...l#pid29691

    Tôi dùng Image Control và lưu đường dẫn (Text) ảnh vào table chứ không dùng Field kiểu OLE Object hoặc Attachment.
    - Lưu đường dẫn thì sẽ không làm file CSDL nặng thêm.
    - Lưu kiểu Attachment, OLE là lưu trực tiếp vào Table. Làm dung lượng file accbd, mdb sẽ phình lên nếu nhiều hình.

    Tks ongke0711 đã trả lời, vì mình chỉ cần lưu vài hình + tránh người dùng lỡ tay xóa => mất file, nên lấy ý tưởng nhét hình vào database, lục internet cả buổi chiều cuối cùng cũng có cách, nhưng giờ muốn hiển thị file Attachment đó lên control Image đang gặp khó, có cao nhân nào giúp mình 1 tay với! tks all!

    Đã tìm ra được phương án cho ý tưởng này, sẵn đây share luôn cho ace nào cần dùng
    Vui lòng tham khảo tại đây!
  • RE: [Yêu cầu Hàm] Ý tưởng & Nơi yêu cầu thủ thuật

    ongke0711 > 14-10-19, 10:48 PM

    (14-10-19, 09:38 PM)bvchauthanh Đã viết: Đã tìm ra được phương án cho ý tưởng này, sẵn đây share luôn cho ace nào cần dùng
    Vui lòng tham khảo tại đây!

    - Bạn cũng nên để ý chút là Field dạng Attachment có thể lưu nhiều file vào cùng 1 Record, do đó nên viết code xoá file ảnh cũ rồi thêm ảnh mới. 
    - Người dùng đôi khi không quen dùng menu chuột phải để xử lý (thêm/xoá) vào field Attachment (và là tiếng Anh) nên cũng nên thiết kế nút lênh thay cho menu chuột phải.