2013-11-18 2 views
0

Я пытаюсь перенести данные из базы данных Access в документ Word. Я выполнил аналогичную процедуру с использованием Excel, и мне нужно ее кодировать с использованием Access вместо Excel.Извлечь данные из базы данных Access в документ Word

Код Excel (для аналогии это)

Dim myworkbook As Excel.Workbook 
Set myworkbook = GetObject("C:\Users\jn\Desktop\trial.xlsm") 

затем

Dim excelstr As String 
Excelstr = Application.Range("A1:A100").Find("aword").Offset(0,1).Value 

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

+0

В Access вы должны запросить базу данных/таблицу с именами столбцов, чтобы найти данные, вы не можете использовать .Range(). Find() stuffs ... – jacouh

ответ

0

Я не знаю, что ваша структура таблицы в Access ... Так что я буду считать, как это:

таблица будет называться Table1 ... с 2 полями Col1 и Col2 ... и один значения, что вы будете искать (ваш пример «aword») находится в Col1 и соответствующий результат будет в col2 ...

Вот код:

Public Function GetAccess(strData As String) 
    Dim db As DAO.Database 
    Dim rst As DAO.Recordset 
    Dim strDB As String 
    Dim strSQL As String 
    Dim strResult As String 

    'Change Table1, Col1, Col2 to your liking correspondingly 
    strSQL = "Select Col2 from Table1 where Col1 = """ & strData & """" 
    strDB = "C:\\Users\\jn\\Documents\\Trial.accdb" 'Change it to your database name 

    Set db = OpenDatabase(strDB) 
    Set rst = db.OpenRecordset(strSQL) 
    If rst.RecordCount > 0 Then 
     strResult = rst.Fields("Col2") 'Remember to change Col2 to your own Column name 
    Else 
     strResult = "" 
    End If 
    rst.Close 
    db.Close 

    Set rst = Nothing 
    Set db = Nothing 

    GetAccess = strResult 
End Function 

Так что, если вы хотите найти результат, вот код для вызова вышеуказанной функции:

Dim strResult As String 

strResult = GetAccess("aword") 
Смежные вопросы