2014-09-17 1 views
-1

Я пытаюсь прочитать ячейку excel с визуальным базовым 2010 (я действительно новичок в этом), и я думаю, что я, наконец, сделал это, НО я не знаю, как вернуть результат , Она должна закончиться в буфер обмена или MsgBox оттуда я найду свой путь: D Сейчас я искал в течение двух часов, но не нашли решение ... Пожалуйста, помогите мневозвращение значения выбора с помощью Visual Basic 2010 oleDB

Благодаря

 Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click 
    cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=C:\Users\marcelf\Documents\Visual Studio 2010\Projects\WindowsApplication1\WindowsApplication1\bin\Debug\DB.xls;extended properties=excel 8.0;" 
    cn.Open() 

    With cm 
     .Connection = cn 
     .CommandText = "SELECT * FROM [ccs$C1:B20] WHERE 'id' = 'German'" 
     .ExecuteNonQuery() 
    End With 
    cn.Close() 

    MsgBox(????) 



End Sub 

EDIT: это обновленный код. Я получаю «Не удалось найти Устанавливаемые ISAM

 Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click 
    Dim con As New OleDbConnection 
    Try 
     Using con 
      'added HDR=No to the extended properties of the connection string 
      con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;data source=C:\Users\marcelf\Documents\Visual Studio 2010\Projects\WindowsApplication1\WindowsApplicat'ion1\bin\Debug\DB.xls;extended properties=excel 12.0;HDR=Yes" 
      con.Open() 
      Using cmd = New OleDbCommand 
       cmd.Connection = con 
       cmd.CommandText = "SELECT * FROM [ccs$C1:C20] WHERE 'id' = 'German'" 
       Using oRDR As OleDbDataReader = cmd.ExecuteReader 
        While (oRDR.Read) 
         MsgBox(oRDR.GetValue(0)) 'gets the first returned column 
        End While 
       End Using 
       con.Close() 
      End Using 
     End Using 
    Catch ex As Exception 
     Throw New Exception(ex.Message) 
    Finally 
     con.Close() 
    End Try 
End Sub 

EDIT: Это то, что работает для меня:.

Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click 
    Dim con As New OleDbConnection 
    Try 
     Using con 
      'added HDR=No to the extended properties of the connection string 
      con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\marcelf\Documents\Visual Studio 2010\Projects\WindowsApplication1\WindowsApplication1\bin\Debug\DB.xls;Mode=3;User ID=Admin;Password=;Extended Properties=Excel 8.0" 
      con.Open() 

      Using cmd = New OleDbCommand 
       cmd.Connection = con 
       cmd.CommandText = "SELECT Service FROM [ccs$] WHERE id='" & ComboBox1.SelectedItem & "'" 
       Using oRDR As OleDbDataReader = cmd.ExecuteReader 
        While (oRDR.Read) 
         MsgBox(oRDR.GetValue(0)) 'gets the first returned column 
        End While 
       End Using 
       con.Close() 
      End Using 
     End Using 
    Catch ex As Exception 
     Throw New Exception(ex.Message) 
    Finally 
     con.Close() 
    End Try 
End Sub 

ответ

0

Добро пожаловать в будущем вы должны показать нам все кода Поскольку вы помечено OleDB. и vb.net, следующее реализует то, что вы пытаетесь выполнить. Я включил класс формы, чтобы можно было показать операторы Imports, но вы можете просто скопировать и вставить код события клика после того, как вы включили в себя класс, включающий импорт. не тестировали этот код, но он должен работать. Сообщите мне, если вам нужно разъяснение или дополнительная помощь.

Imports System.Data.OleDb 

Public Class Form1 
    Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click 
     Dim con As New OleDbConnection 
     Try 
      Using con 
       'added HDR=No to the extended properties of the connection string 
       ' **EDIT** 
       con.ConnectionString = "Provider=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\marcelf\Documents\Visual Studio 2010\Projects\WindowsApplication1\WindowsApplicat'ion1\bin\Debug\DB.xls;Mode=3;User ID=Admin;Password=;Extended Properties=Excel 8.0" 
       con.Open() 
       Using cmd = New OleDbCommand 
        cmd.Connection = con 
        cmd.CommandText = "SELECT * FROM [ccs$C1:B20] WHERE 'id' = 'German'" 
        Using oRDR As OleDbDataReader = cmd.ExecuteReader 
         While (oRDR.Read) 
          MsgBox(oRDR.GetValue(0)) 'gets the first returned column 
         End While 
        End Using 
        con.Close() 
       End Using 
      End Using 
     Catch ex As Exception 
      Throw New Exception(ex.Message) 
     Finally 
      con.Close() 
     End Try 
    End Sub 
End Class 
+0

Привет, спасибо за помощь, это имеет смысл, но я получаю сообщение об ошибке: «Не удалось найти устанавливаемый ISAM». Указывая на «Бросить новое исключение (ex.Message)» –

+0

Вам нужно будет использовать «Provider = Microsoft.ACE.OLEDB.12.0 "вместо ole.4. Я отредактировал свой ответ. Вам также может потребоваться изменить HDR = Да. –

+0

все тот же ... У меня такая же ошибка. –