#sql #vba #csv #ado
Вопрос:
Я работаю над проектом, в котором мне нужно использовать CSV в качестве небольшой базы данных SQL. Я общаюсь с этой базой данных с помощью VBA.
Я хотел бы знать, есть ли способ ОБНОВИТЬ (или УДАЛИТЬ) существующую строку (записи).
Мне удалось вставить новую строку со следующим кодом, но я не могу изменить существующую строку.
Sub WriteData()
' some Code
Open str_Path For Append As #1
str_Data = ' Semicolon separated value in a string
Print #1, str_Data
Close #1
End Sub
Я также попытался использовать объект набора записей ADODB, но я не могу создать правильную строку подключения, которая понимает, что разделителем является «;».
Большое вам спасибо за любую помощь или идеи 🙂 Всего наилучшего, Макс
Комментарии:
1. Это помогло бы вашему вопросу опубликовать код, который вы использовали при попытке выполнить обновление.
2. Мне не удалось попробовать. Я прочитал несколько статей в Интернете, но я не нахожу того, что ищу ! (Может быть, я тоже новичок, чтобы понять некоторые решения)
3. Я не думаю, что вы можете обновить строку в CSV с помощью ADO.
Ответ №1:
Я уверен, что есть более элегантное решение, возможно, с использованием Open
оператора VBA, но я бы использовал Excel следующим образом.
Dim xlApp, xlWb, xlWs
On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")
If xlApp Is Nothing Then _
Set xlApp = CreateObject("Excel.Application")
On Error GoTo 0
Set xlWb = xlApp.Open("C:blahblah.csv")
Set xlWs = wlWb.Sheets("Sheet1")
xlWs.Row(1).EntireRow.Delete 'Change 1 to whatever you want
Ответ №2:
Используйте объект FileSystemObject.
С его помощью вы можете легко просматривать, читать, удалять и добавлять строки в текстовый файл.