2015-07-01 3 views
0

У меня есть столбец в базе данных под названием «UOM», и я хочу отобразить его рядом со значением «Qty» через открытие SQL-запроса. Но он показал ошибку: «Нет данных для строки/столбца». Это мои коды.Как отобразить данные из базы данных в VBA Excel?

Dim Oledbconn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= C:/inetpub/wwwroot/ProjectIntegrated/Inven.mdb;Persist Security Info=True") 
     Dim cmd As New OleDbCommand 
     Dim reader As OleDbDataReader 

     cmd.CommandText = "Select UOM FROM Master WHERE IPN = '" & Session("PO IPN")(SummaryCounter) & "'" 
     cmd.CommandType = CommandType.Text 
     cmd.Connection = Oledbconn 

     Oledbconn.Open() 
     reader = cmd.ExecuteReader() 

     oSheet.Range("F" & ExcelCounter).Value = "" & Session("PO Qty") + reader.Item("UOM") + (POTableCounter) 
     oSheet.Range("F" & ExcelCounter).HorizontalAlignment = -4108 


     Oledbconn.Close() 
+0

не так ли? Vb.Net'? –

ответ

0

Выполнение работы с самим читателем этого не сделает. Вы также должны на самом деле читать. Попробуйте следующее:

Oledbconn.Open() 
reader = cmd.ExecuteReader() 

if (dreader.HasRows) 
{ 
    dreader.Read(); 
    oSheet.Range("F" & ExcelCounter).Value = "" & Session("PO Qty") + reader.Item("UOM") + (POTableCounter) 
    oSheet.Range("F" & ExcelCounter).HorizontalAlignment = -4108 
} 

Oledbconn.Close() 
+0

Я пробовал, но он показывает эту ошибку. «Оператор« + »не определен для типа« String() »и строки« EA ». EA - это данные текстового значения в столбце @LocEngineer –

+0

Пожалуйста, разместите образцы значений для своего сеанса и UOM. Является ли POTableCounter int? Избавьтесь от '" "&'. – LocEngineer

+0

Ummm ... У 'insertCommands' есть что-то общее с вышеуказанным кодом? Какие ** значения ** сохраняются в переменных сеанса? Кроме того, согласно http://stackoverflow.com/questions/4670247/concat-strings-by-and-in-vb-net, всегда используйте оператор '&' для конкатенации строк в VB.Net. – LocEngineer

Смежные вопросы