Обновление или удаление строки VBA в CSV

#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.

С его помощью вы можете легко просматривать, читать, удалять и добавлять строки в текстовый файл.