У меня есть программа, предназначенная для повторной записи текстового файла в MS Excel с использованием макроса VBA с запросом SQL с использованием ADODB.
Текстовый файл сам по себе является извлечением из базы данных другого отдела (ив текстовом файле представлена как таблица, разделенная запятыми).
В любом случае, у меня есть столбец («Группа» ниже), заполненный «Z4» или «50».Это только два типа ввода для указанного столбца.
До сегодняшнего дня запрос возвращал оба значения.Теперь я получаю только 50.Ячейки, в которых должно появиться «Z4», пусты.
Код ниже:
Sub TextReader()
'Text reader
Application.ScreenUpdating = False
'Error Management
On Error Resume Next
'--------- Connection -------------------------------
Dim cnn As ADODB.Connection
Dim str As String
Set cnn = New ADODB.Connection
cnn.Provider = "Microsoft.ACE.OLEDB.12.0" '
cnn.ConnectionString = "Data Source=" & ThisWorkbook.Path & "\" & ";" & _
"Extended Properties=""text; HDR=YES; FMT=Delimited;"""
'Open Connection
cnn.Open
'ADODB record
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
'cleanup
Sheets("Cost").Cells.Clear
'SQL String
str = "select Group from ZR46.txt "
'Get the values
With rs
.ActiveConnection = cnn
.Open str
Sheets("Cost").Range("A2").CopyFromRecordset rs
.Close
End With
'Close
cnn.Close
Application.ScreenUpdating = True
End Sub
Текстовый файл (не совсем такой, но измененный, потому что это личные данные):
,Article,Designation,Price,Strat,Group,Provis,
,123456789,BODY,706§09,PD,Z4,COND,
,897654321,BONNET,1§456§15,PD,Z4,COND,
,123789456,STEM,102§06,PD,50,COND,