Materials

txtfile

form:
Option Compare Database
Option Explicit

Private Sub btnBrowse_Click()

Dim filter As New DialogFilter
Dim result As OpenFileDialogResult

filter.Description = “Delim. Files”
filter.Extenstions = “*.csv, *.txt”

Set result = SelectingFile.OpenFileDialog(“Select a file to import”, False, filter)

If result.Successful Then
Me.txtFileName = result.FileName
Me.txtErrMessage = Null

Else
Me.txtErrMessage = result.ErrorMessage
End If

End Sub

Private Sub btnImport_Click()
Dim result As ImportTXTFileResult
Dim params As New ImportTXTProductsParams

Me.txtErrMessage = Null

If IsNull(Me.txtFileName) Then
Me.txtErrMessage = “Please select a File!”

Exit Sub

End If

If IsNull(Me.cboImportFileType) Then
Me.txtErrMessage = “Please select a file type!”

Exit Sub

End If

params.FileName = Me.txtFileName
params.hasHeaders = True
params.SpecificationName = Me.cboImportFileType
params.TableName = “PRODUCTS”

Set result = ImportingFile.ImportTXTProducts(params)

If result.Successful Then
MsgBox “Import successful!”, vbOKOnly, “Success!”

Else
Me.txtErrMessage = result.ErrorMessage

End If
End Sub

 

modules
a) importing
Option Compare Database
Option Explicit

Public Function ImportTXTProducts(params As ImportTXTProductsParams) As ImportTXTFileResult
Dim result As New ImportTXTFileResult
Dim FSO As New FileSystemObject
Dim TXT As TextStream
Dim FileData As String
Dim FileDelim As String


‘On Error GoTo ImportProblem

If Not FSO.FileExists(params.FileName) Then
result.Successful = False
result.ErrorMessage = “File Not Found!”
Set ImportTXTProducts = result

Exit Function

End If

Set TXT = FSO.OpenTextFile(params.FileName, ForReading)
FileData = TXT.ReadAll
TXT.Close

FileDelim = DLookup(“FieldSeparator”, “MSysIMEXSpecs”, “SpecName='” & params.SpecificationName & “‘”)

If InStr(1, FileData, FileDelim) = 0 Then
result.Successful = False
result.ErrorMessage = “Incorrect File Type”
Set ImportTXTProducts = result

Exit Function

End If

DoCmd.TransferText acImportDelim, params.SpecificationName, params.TableName, params.FileName, params.hasHeaders

result.Successful = True
Set ImportTXTProducts = result

Exit Function

‘ImportProblem:
‘ result.Successful = False
‘ result.ErrorMessage = Err.Description

Set ImportTXTProducts = result
End Function
b) selecting
Option Compare Database
Option Explicit

Public Function OpenFileDialog(Title As String, AllowMultiSelect As Boolean, DialogFilter As DialogFilter) As OpenFileDialogResult

Dim diag As FileDialog
Dim item As Variant
Dim result As New OpenFileDialogResult

Set diag = Application.FileDialog(msoFileDialogFilePicker)

diag.AllowMultiSelect = AllowMultiSelect
diag.Title = Title
diag.Filters.Clear
diag.Filters.Add DialogFilter.Description, DialogFilter.Extenstions

If diag.Show Then
For Each item In diag.SelectedItems

result.FileName = CStr(item)
result.Successful = True

Next

Else
result.Successful = False
result.ErrorMessage = “No file selected!”
End If

Set OpenFileDialog = result

End Function

 

 

classes
1) DialogFilter
Option Compare Database
Option Explicit

Public Description As String
Public Extenstions As String

2) ImportTXTFileResult
Option Compare Database
Option Explicit

Public Successful As Boolean
Public ErrorMessage As String
3) ImportTXTProductsParams
Option Compare Database
Option Explicit

Public SpecificationName As String
Public TableName As String
Public FileName As String
Public hasHeaders As Boolean
4) OpenFileDialogResult
Option Compare Database
Option Explicit

Public Successful As Boolean
Public ErrorMessage As String
Public FileName As String

 

28.09.2019

Option Explicit

Sub Finalsteps()

Columns(6).Select
Range(Selection, Selection.End(xlToRight)).EntireColumn.Hidden = True
Rows(“24:24”).Select
Range(Selection, Selection.End(xlDown)).EntireRow.Hidden = True

Range(“A1:E1”).Select
With Selection
.Interior.Color = 12611584
.Font.ThemeColor = xlThemeColorDark1

End With

Range(“A2:E23”).Interior.ThemeColor = xlThemeColorAccent5

Range(“A1”).Select

Cells.EntireColumn.AutoFit
Call SaveWPass
End Sub
Sub SaveWPass()

Dim Ownpass As Variant

Ownpass = InputBox(“Please enter password to protect document”, “Save with password”, “pass”)

MsgBox “Created password: ” & Ownpass & ” .Set password will be required to open this Workbook next time.”

With Application
.DisplayAlerts = False
.ScreenUpdating = False

With ActiveWorkbook

.SaveAs Filename:=”C:\Users\Agnieszka\Desktop\Macro_protected.xlsm”, FileFormat:=52, Password:=Ownpass, WriteResPassword:=””, _
ReadOnlyRecommended:=False, CreateBackup:=False

.Close
End With

.ScreenUpdating = True
.DisplayAlerts = True
End With

End Sub

Bez tytułu.jpg