maidinhdan > 02-06-20, 05:22 PM
Noname > 30-06-20, 04:28 PM
maidinhdan > 13-11-20, 08:51 PM
Xuân Thanh > 14-11-20, 11:06 AM
maidinhdan > 14-11-20, 02:47 PM
(14-11-20, 11:06 AM)Xuân Thanh Đã viết: @maidinhdan
Lưu đồ chính là một thuật toán logic để giải bài toán. Đã là thuật toán logic thì chỉ có hai trường hợp là đúng và sai. Nếu đk đặt ra là đúng thì hướng đi của lưu đồ là hướng A và ngược lại sẽ là hướng B. Nên chăng Dân chỉnh lý lại một chút trong lưu đồ này được không?
' --------------------------------------------------------------------------------------------------------
' Thuoc Modules/Class: [Modules]: modKhaibaoMangLAN
' Ten ham/thu tuc : ChonVBMangLAN
' Tao tren may PC : DAN_ACERV5
' Author/ Tac gia : maidinhdan@gmail.com
' Ngay tao : 20/10/2020 12:08:11 AM
' Parameters/Tham so :
' Cu phap/ Purpose : Phải chạy hàm NaptblThongtinketnoi() trước
' Pham vi ap dung : Copy File lên máy chủ qua LAN
' --------------------------------------------------------------------------------------------------------
Public Function ChonVBMangLAN(ByVal TenFile As String, ByVal NgaycuaVB As Date, ByVal ChonVungBKDenDi As Byte) As String
ChonVBMangLAN = ""
Try
'1. Chọn File: Nếu bỏ chọn thì Thoát
Dim Vitrichon As String = ChonFile()
If Vitrichon = "" Then Exit Function ' Neu khong chon thi ket thuc
Dim Nam As String = Year(NgaycuaVB)
Dim DuoiFile As String = IO.Path.GetExtension(Vitrichon) 'Lay Kieu file
Dim TenvaDuoiFile As String = TenFile & DuoiFile
Dim TMLuu As String
If ChonVungBKDenDi = 1 Then
TMLuu = "CONGVAN_Den\" & Nam
Else
TMLuu = "CONGVAN_Di\" & Nam
End If
'Kiem tra file DataHeThongVBDT.mdb de xac dinh ban dang dung tren may Server/Client
Dim LinkData As String = pbTenFolderNoiCaiDat & "Data\DataHeThongVBDT.mdb" ' Application.StartupPath & "\Danh_muc_ho_so\Data\DataHeThongVBDT.mdb"
If TestFile(LinkData) = True Then
LinkData = pbTenFolderNoiCaiDat & TMLuu '=>D:\VBDT2.0\Danh_muc_ho_so\CONGVAN_Den\2017
Else
LinkData = IPChiase() & TMLuu '=>\\192.168.1.4\VBDT2.0$\CONGVAN_Den\2017
Dim OnOffIP As String = TestIP(pbIPMayChu)
'2. Kiểm tra IP máy chủ có đang mở không? Hàm này ở đây để phòng Trường hợp, máy bạn đang dùng là máy chủ thì không cần kiểm tra IP mà mấy thẳng LinkData: Application.StartupPath & "\Danh_muc_ho_so\Data\DataHeThongVBDT.mdb
If OnOffIP = False Then
MessageBox.Show("Máy chủ đã tắt: File Chọn vẫn chưa thể cập nhật", "Thông báo: Dừng lệnh Chọn File", MessageBoxButtons.OK, MessageBoxIcon.Stop)
Exit Function 'Ngung thuc hien viec chep File len may chu do may chu dang tat
End If
End If
Dim LinkFileMoi As String = LinkData & "\" & TenvaDuoiFile
'3. Kiểm tra File Trên máy chủ có tồn tại không?
If TestFile(LinkFileMoi) = True Then
'Xác nhận ghi đè không?
Select Case MessageBox.Show("File đang tồn tại trên Máy chủ: Bạn có muốn ghi đè không?" & vbCrLf & vbCrLf & "Yes: Ghi đè" & vbCrLf & "No: Giữ nguyên File củ: và Xem File Củ này" & vbCrLf & "CanCel: Mở thư mục chứa File này", "Xác nhận ghi đè File trên máy chủ", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
Case DialogResult.Yes
If CopyFileVBDT(Vitrichon, LinkFileMoi) = False Then Exit Function
Case DialogResult.No
Process.Start(LinkFileMoi)
Exit Function
Case DialogResult.Cancel
MoThuMuc(LinkData)
Exit Function
End Select
Else
'4. Kiểm tra thư mục trên máy chủ có tồn tại không?
If TestFolder(LinkData) = False Then TaoThuMuc(LinkData)
If CopyFileVBDT(Vitrichon, LinkFileMoi) = False Then Exit Function ' Sao chep file tu Vitrichon File vao vung luu chinh tren May chu ( vùng Shared Folder VBDT3.0$)
'Tao ra file QR code
'GetQRCode(LinkFileMoi, LinkData & "\" & TenFile & ".png")
End If
'2.___________Tao thu muc va Copy file vao vung luu Du phong cua may dang chon file
Dim NamBK As String = TMBackup(ChonVungBKDenDi) & Nam
If TestFolder(NamBK) = False Then TaoThuMuc(NamBK)
' Sao chep file vao vung Backup
CopyFileVBDT(Vitrichon, NamBK & "\" & TenvaDuoiFile)
' ChonVBMangLan = VungCaiDatServer & TMLuu & "\" & TenvaDuoiFile
ChonVBMangLAN = TenvaDuoiFile ' Chi lay ten + duoi file; khong lay duong dan day du. Muc dich de tiet kiem du lieu
'Tao ra file QR code
' GetQRCode LinkData & "\" & TenvaDuoiFile, NamBK & "\" & TenFile & ".png"
Catch ex As Exception
MessageBox.Show("Test lại kết nối" & vbCrLf & ex.ToString, "Lỗi hàm ChonVBMangLAN", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Function
Public Sub XemVBmangLAN(ByVal TenFileVaDuoiFile As String, ByVal NgaycuaVB As Date, ByVal ChonVungBKDenDi As Byte)
If TenFileVaDuoiFile = "" Then
MessageBox.Show("Máy chủ chưa cập nhật File này.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
Try
Dim Nam As String = Year(NgaycuaVB)
Dim TMLuu As String
If ChonVungBKDenDi = 1 Then
TMLuu = "CONGVAN_Den\" & Nam
Else
TMLuu = "CONGVAN_Di\" & Nam
End If
Dim ThuMucLuuDuPhong As String = TMBackup(ChonVungBKDenDi) & Nam
Dim LinkIPChiaSe As String = IPChiase() & TMLuu
Dim LinkfileMayChu As String = LinkIPChiaSe & "\" & TenFileVaDuoiFile
Dim LinkfileLuuDuPhong = ThuMucLuuDuPhong & "\" & TenFileVaDuoiFile 'Link file
Dim LinkFileLuuVungChinh As String = pbTenFolderNoiCaiDat & TMLuu & "\" & TenFileVaDuoiFile '=>D:\VBDT2.0\Danh_muc_ho_so\CONGVAN_Den\2017
Dim LinkData As String = pbTenFolderNoiCaiDat & "Data\DataHeThongVBDT.mdb" ' Application.StartupPath & "\Danh_muc_ho_so\Data\DataHeThongVBDT.mdb"
Dim maychu As Boolean = TestFile(LinkData)
'1. Kiểm tra trên máy tôi (tại thư mục dự phòng) có File chưa?
If TestFile(LinkfileLuuDuPhong) = True Then
If maychu = True Then
If TestFile(LinkFileLuuVungChinh) = False Then CopyFileVBDT(LinkfileLuuDuPhong, LinkFileLuuVungChinh) 'Nếu File vùng chính kho6nng tồn tại mở xem Đoạn viết thêm phòng hờ máy đang dùng là máy chủ mà bị mất file
End If
Process.Start(LinkfileLuuDuPhong) ' Mở xem và kết thúc lệnh: Xem File bằng Link dự phòng của bạn chứ không xem trực tiếp trên máy chủ
Exit Sub
Else '2. Dò tìm Ip trên máy chủ tắt hay mở
'_____________________________________________Đoạn viết thêm phòng hờ máy đang dùng là máy chủ mà bị mất file_________________________________________
If maychu = True Then
If TestFile(LinkFileLuuVungChinh) = True Then 'Nếu File vùng chính tồn tại mở xem
If TestFolder(ThuMucLuuDuPhong) = False Then TaoThuMuc(ThuMucLuuDuPhong)
CopyFileVBDT(LinkFileLuuVungChinh, LinkfileLuuDuPhong)
Process.Start(LinkFileLuuVungChinh) 'xem file qua thư mục dự phòng
Exit Sub
Else
'Check tất cả đều không có thì máy chủ chưa có File này, cần cập nhật
MessageBox.Show("Máy chủ chưa cập nhật File này.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
'_____________________________________________Đoạn viết thêm phòng hờ máy đang dùng là máy chủ mà bị mất file_____________________________________
Else ' Đoạn dưới dành cho máy con mở xem File trên máy chủ_____________________________________________________________________________________________
If TestIP(pbIPMayChu) = False Then 'Đang tắt/Máy bạn không có Internet
MessageBox.Show("Không thể xem File trên máy chủ, xin vui lòng kiểm tra lại kết nối", "Thông báo: Máy chủ đã tắt/Máy bạn không có Internet", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
Else ' IP máy chủ Đang mở
'3.Kiểm tra File máy chủ có không?
If TestFile(LinkfileMayChu) = False Then 'Không có File
MessageBox.Show("Máy chủ chưa cập nhật File này.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
Else ' Có File
'4. Kiểm tra thư mục dự phòng bạn có chưa?
If TestFolder(ThuMucLuuDuPhong) = False Then TaoThuMuc(ThuMucLuuDuPhong) 'Chưa có thư mục thì tạo
'5. Copy file từ máy chủ về
CopyFileVBDT(LinkfileMayChu, ThuMucLuuDuPhong)
'6. Xem File bằng Link dự phòng của bạn chứ không xem trực tiếp trên máy chủ
Process.Start(LinkfileLuuDuPhong) 'xem file qua thư mục dự phòng
End If
End If
End If
End If
Catch ex As Exception
MessageBox.Show("Test lại kết nối" & vbCrLf & ex.ToString, "Lỗi hàm XemVBMangLAN", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Public Function XemVB(TenvaDuoiFileLuu As String, NgaycuaVB As Date, ChonVungBKDenDi As Byte)
On Error GoTo Loi
Dim DiaChiFilebangIP As String
Dim DiaChiBackupFile As String
Dim DiaChiFileServer As String
Dim Nam As String, NamBK As String
Dim DiDen As String
Nam = Year(NgaycuaVB)
If ChonVungBKDenDi = 1 Then
DiDen = "CONGVAN_DEN\" & Nam & "\" & TenvaDuoiFileLuu
Else
DiDen = "CONGVAN_DI\" & Nam & "\" & TenvaDuoiFileLuu
End If
If TenvaDuoiFileLuu > "" Then
DiaChiFilebangIP = IPChiase() & DiDen
NamBK = TMBackup(ChonVungBKDenDi) & Nam
DiaChiBackupFile = NamBK & "\" & TenvaDuoiFileLuu
DiaChiFileServer = VungCaiDat & DiDen
'1----------Kiem tra file co o tren DiachiBackupFile chua?
Do While Dir(DiaChiBackupFile) = "" 'Thuc hien den khi co file luu vao vung DiachiBackupFile
'Nhanh phu: Tao thu muc cho vung Backup, de copy ve luu vung nay
If Dir(NamBK, vbDirectory) = "" Then
TaoThuMuc (NamBK)
End If
'2______________Kiem tra xem may dang dung la Server hay Client
If TestFilehayFolder(VungCaiDat & "Data\DataHeThongVBDT.mdb") = True Then
'2.1: Neu may ban la Server
If TestFilehayFolder(DiaChiFileServer) = True Then
' Neu co thi Copy vao vung Backup tren may ban dang thao tac
Call SaochepFile(DiaChiFileServer, DiaChiBackupFile)
Else
DoCmd.RunMacro "mcthongbao.141"
Exit Function
End If
Else
'2.2: Neu may ban la Client
If KiemtraIPTatMo = "Mo" Then ' Kiem tra May chu Tat/Mo
'Neu mo kiem tra vung file co nam trong thu muc Shared VBDT3.0 tren may chu khong
If TestFilehayFolder(DiaChiFilebangIP, False) = True Then
' Neu co thi Copy vao vung Backup tren may ban dang thao tac
Call SaochepFile(DiaChiFilebangIP, DiaChiBackupFile)
Else
DoCmd.RunMacro "mcthongbao.141"
Exit Function
End If
Else
'Neu tat thi ket thu lenh
Exit Function
End If
End If
Loop
'3______________Mo file xem tu vung DiaChiBackupFile
Call XemAllfile(DiaChiBackupFile) 'Xem offline
Else
DoCmd.RunMacro "mcthongbao.141"
End If
Exit_Loi:
Exit Function
Loi:
Call DemSoLoiDeThoat
Resume Exit_Loi
End Function
Public Function ChonVB(TenFile As String, NgaycuaVB As Date, ChonVungBKDenDi As Byte) As String
On Error GoTo Loi
Dim Vitrichon As String: Vitrichon = ChonFile()
Dim Nam As String: Nam = Year(NgaycuaVB)
Dim OnOffIP As String
Dim LinkData As String, NamBK As String
Dim VungCaiDatServer As String: VungCaiDatServer = VungCaiDat '=>D:\VBDT2.0\Danh_muc_ho_so\
Dim DuoiFile As String, TenvaDuoiFile As String
Dim TMLuu As String
If ChonVungBKDenDi = 1 Then
TMLuu = "CONGVAN_Den\" & Nam
Else
TMLuu = "CONGVAN_Di\" & Nam
End If
If Vitrichon = "" Then Exit Function ' Neu khong chon thi ket thuc
'Kiem tra file DataHeThongVBDT.mdb de xac dinh ban dang dung tren may Server/Client
LinkData = VungCaiDatServer & "Data\DataHeThongVBDT.mdb"
If TestFilehayFolder(LinkData) = True Then
LinkData = VungCaiDatServer & TMLuu '=>D:\VBDT2.0\Danh_muc_ho_so\CONGVAN_Den\2017
Else
LinkData = IPChiase & TMLuu '=>\\192.168.1.4\VBDT2.0$\CONGVAN_Den\2017
OnOffIP = KiemtraIPTatMo()
If OnOffIP = "Tat" Then Exit Function 'Ngung thuc hien viec chep File len may chu do may chu dang tat
End If
DuoiFile = LayduoiFile(Vitrichon) 'Lay Kieu file
TenvaDuoiFile = TenFile & DuoiFile
'1.___________Tao thu muc va Copy file vao vung luu chinh tren May chu ( vùng Shared Folder VBDT3.0$)
If TestFilehayFolder(LinkData, True) = False Then ' Neu chua co Thu muc LinkData
Do Until Dir(LinkData, vbDirectory) > "" ' Thuc hien den khi tao duoc thu muc LinkData
TaoThuMuc (LinkData)
Loop
End If
' Sao chep file tu Vitrichon File vao vung luu chinh tren May chu ( vùng Shared Folder VBDT3.0$)
Call SaochepFile(Vitrichon, LinkData & "\" & TenvaDuoiFile)
'Tao ra file QR code
GetQRCode LinkData & "\" & TenvaDuoiFile, LinkData & "\" & TenFile & ".png"
'2.___________Tao thu muc va Copy file vao vung luu Du phong cua may dang chon file
NamBK = TMBackup(ChonVungBKDenDi) & Nam
If TestFilehayFolder(NamBK, True) = False Then ' Neu chua co Thu muc NamBK
Do Until Dir(NamBK, vbDirectory) > "" ' Thuc hien den khi tao duoc thu muc NamBK
TaoThuMuc (NamBK)
Loop
End If
' Sao chep file vao vung Backup
Call SaochepFile(Vitrichon, NamBK & "\" & TenvaDuoiFile)
' ChonVB = VungCaiDatServer & TMLuu & "\" & TenvaDuoiFile
ChonVB = TenvaDuoiFile ' Chi lay ten + duoi file; khong lay duong dan day du. Muc dich de tiet kiem du lieu
'Tao ra file QR code
' GetQRCode LinkData & "\" & TenvaDuoiFile, NamBK & "\" & TenFile & ".png"
Exit_Loi:
Exit Function
Loi:
Call DemSoLoiDeThoat
Resume Exit_Loi
End Function
Xuân Thanh > 14-11-20, 05:13 PM
thuyyeu99 > 15-11-20, 07:04 PM