Извлечь все строки из таблицы в текст - PullRequest
0 голосов
/ 01 апреля 2020

Я использую следующий код для извлечения всех строк из моей таблицы в текстовый файл. Я столкнулся с проблемой. Если значение пустое, я получаю предыдущее значение строки для этого столбца. Вот мой код

Dim db As DAO.Database
Dim rec As DAO.Recordset
Dim strQry As String
Dim aRow(1 To 16) As String
Dim aBody() As String
Dim lCnt As Long

lCnt = 1
ReDim aBody(1 To lCnt)

strQry = "SELECT * From tbllast"
Set db = CurrentDb
Set rec = CurrentDb.OpenRecordset(strQry)

If Not (rec.BOF And rec.EOF) Then
    Do While Not rec.EOF
        lCnt = lCnt + 1
        ReDim Preserve aBody(1 To lCnt)                       
        aRow(1) = rec("cust_id")                        
        aRow(2) = Format(rec("app_date"), "yyyy/mm/dd")  
        aRow(3) = rec("work_id")                         
        aRow(4) = rec("app_price")                       
        aRow(5) = rec("doc_id")                          
        aRow(6) = rec("ass_id")                          
        aRow(7) = rec("pla_id")                          
        aRow(8) = NULL                             
        aRow(9) = NULL                            
        aRow(10) = rec("app_memo")              
        aRow(11) = rec("fin_price")                      
        aRow(12) = NULL                            
        aRow(13) = rec("pay_id")                         
        aRow(14) = rec("receipt")                        
        aRow(15) = rec("fin_memo")   
        aRow(16) = Format(rec("app_date"), "yyyy/mm/dd") 
        aBody(lCnt) = "('" & Join(aRow, "','") & "'),"
        rec.MoveNext
        Debug.Print aBody(lCnt)
    Loop
End If

aBody(lCnt) = aBody(lCnt)

Debug.Print Join(aBody, vbNewLine)

У меня проблема во всех столбцах.

Любые идеи.

Ответы [ 2 ]

1 голос
/ 01 апреля 2020

Используйте Nz во всех полях, которые могут быть Нуль , чтобы вместо этого возвратить пустую строку:

aRow(1) = Nz(rec("cust_id").Value) 
... etc.
0 голосов
/ 01 апреля 2020

Вы должны проверить, является ли значение нулевым, прежде чем писать его с помощью IsNull и, возможно, присвоить ему пустую строку с помощью ''. Вы можете использовать функцию Nz для достижения этой цели:

aRow(1) = Nz(rec("cust_id").Value)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...