• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB.NETで、ORACLE 8に接続するには?)

VB.NETで、ORACLE 8に接続する方法は?

akira_0201の回答

回答No.5

もしかしたら定義部分をそれぞれ「Object」にするとうまく動くかも・・・。 自信ないですが。 http://www.int21.co.jp/pcdn/vb/howto/oracle.html

参考URL:
http://www.int21.co.jp/pcdn/vb/howto/oracle.html
THUBAN
質問者

お礼

自己解決したので、前質問のお礼欄にコードを書いておきました。 わざわざ、ありがとございます。 お教えいただいたサイトも、今後の参考にさせていただきます。

関連するQ&A

  • VB.NET2005からoracle92へ接続するには?

    IDとパスワードを入力し、オラクルのDBにあるIDとパスワードだったら次の画面を開くというプログラムを作りたいです。 オラクルへの接続がうまく行ってないようで画面が固まってしまいます。 プログラムの不具合を教えていただけないでしょうか? よろしくお願いします。 Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim cn As New OleDb.OleDbConnection() Dim cmd As New OleDb.OleDbCommand() Dim rs As OleDb.OleDbDataReader cn.ConnectionString = "Provider=OraOLEDB.Oracle;Data Source=*;User ID=*;Password=*;" cn.Open() '←ここで、エラーになります。 cmd = cn.CreateCommand() cmd.CommandText = "Select ID from abc" rs = cmd.ExecuteReader() While rs.Read() If TextBox1.Text = cmd.CommandText Then MessageBox.Show("パスワードを受付けました。") Dim frm2 As New Form2 frm2.Show() TextBox1.Clear() TextBox2.Clear() Else MessageBox.Show("パスワードが違います。") TextBox1.Text = "" TextBox1.Focus() TextBox1.Clear() TextBox2.Clear() End if     End While cn.Close() rs.Close() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() End Sub End Class

  • VB.NET2005からoracle92へ接続する方法。

    IDとパスワードを入力し、オラクルのDBにあるIDとパスワードだったら次の画面を開くというプログラムを作りたいです。 オラクルへの接続がうまく行ってないようで画面が固まってしまいます。 プログラムの不具合を教えていただけないでしょうか? よろしくお願いします。 Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim cn As New OleDb.OleDbConnection() Dim cmd As New OleDb.OleDbCommand() Dim rs As OleDb.OleDbDataReader cn.ConnectionString = "Provider=OraOLEDB.Oracle;Data Source=*;User ID=*;Password=*;" cn.Open() '←ここで、エラーになります。 cmd = cn.CreateCommand() cmd.CommandText = "Select ID from abc" rs = cmd.ExecuteReader() While rs.Read() If TextBox1.Text = cmd.CommandText Then MessageBox.Show("パスワードを受付けました。") Dim frm2 As New Form2 frm2.Show() TextBox1.Clear() TextBox2.Clear() Else MessageBox.Show("パスワードが違います。") TextBox1.Text = "" TextBox1.Focus() TextBox1.Clear() TextBox2.Clear() End if     End While cn.Close() rs.Close() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() End Sub End Class

  • VB.NETのことで困っています。

    VB.NETのプログラムで白黒判別プログラムを作成することになったのですが、GetPicxelの使い方が間違っているらしく正しくカウントしてくれません。 ちなみに今作成している問題のプログラムは以下のプログラムです。 Function CountNumColor(ByRef DotWW As Long, ByRef DotHH As Long, ByRef CHECK_C As Long) As Integer Dim Form1 As Object Dim NumEQ As Double Dim NumNot As Long Dim x, y As Long NumEQ = 0 NumNot = 0 System.Windows.Forms.Application.DoEvents() For x = 0 To DotHH - 1 For y = 0 To DotWW - 1 System.Windows.Forms.Application.DoEvents() If CHECK_C = Val("Bitmap.GetPixel(x,y)") Then NumEQ = NumEQ + 1 Else NumNot = NumNot + 1 Debug.Write("x,y,Val(Bitmap.GetPixel(x, y)") End If Next y Next x CountNumColor = NumEQ End Function このプログラムで問題がありましたらぜひとも教えてください。GetPicxel以外の間違いに気づいた人がいた場合もご意見をお待ちしております。また、この質問で分からないことがございましたら遠慮なく書き込んでください。気づき次第返答いたします。

  • VBをVBAに ソースコードあり

    二度ほど こちらを利用させていただき、一歩ずつ理解してきているのですが、回りにVB、VBAを使っている方がいなく、相談出来る所がここしかなく また投稿させて頂きました 今回 迷っている事は VBのソースコードがあり それをVBAで実行する場合、どこで宣言すればいいのか という事です VBの~ソースコード~ メインふぉーむ データ受信関数 Private Sub RF720CLib_RFIDMessage(ByVal Message As String, ByVal MessageSize As Long) Dim code As String Dim cmd As String Dim body As String code = RF720CLib.GetResponseCode(Message, MessageSize) cmd = RF720CLib.GetCmdCode(Message, MessageSize) body = RF720CLib.GetResponseBody(Message, MessageSize) If code = "00" Then If cmd = "RD" Then For cnt = 0 To csvline - 1 If Vegetable(cnt).m_ID = body Then End If Next End If If cmd = "IS" Then ReadStep = ReadStep + 1 End If End If End Sub ↑ こちらで RF720CLib ライブラリーを使い  RD リードなどを行ってるとは思うのですが VBAの場合 フォームをロード時に イベントとして宣言すればいいのでしょうか? それとも 上記のはVBですので VBAで使う場合 また新しく作り変えなければいけないのでしょうか? VBとVBAは全く違うもの として考えた方がいいのでしょうか RF720CLibは アクティブXコントロールでVBAでも使えました とても 困っております 宜しくお願いします

  • VB6のコードをVB.NETに移したいのですが

    WEBで見つけたVB6のサンプルコードをVB.NET用に書き直して いるのですが、なんとか波線のエラーはなくなったものの 実行すると、思った結果が得られません。 正しい訂正方法を教えて頂きたいです。 サンプルコードは下記のサイトにありました。 http://vbnet.mvps.org/index.html?code/internet/findfirstcacheentry.htm インターネットキャッシュに関するものです。 文字数の関係で全部は書けないのですが、現在は↓のようになっています。 その他の訂正箇所は 全部のAs Any を As Objectに変更していて、 ComboBoxのアイテムに数値が設定できないようなので、 Select Caseで判断するようにしています。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim numEntries As Long Dim cacheType As Long Select Case ComboBox1.SelectedIndex Case Is = 0 cacheType = &H1S Case Is = 1 cacheType = &H8S Case Is = 2 cacheType = &H10S Case Is = 3 cacheType = &H20S Case Is = 4 cacheType = &H40S Case Is = 5 cacheType = &H10000 Case Is = 6 cacheType = &H100000 Case Is = 7 cacheType = &H200000 Case Is = 8 cacheType = URLCACHE_FIND_DEFAULT_FILTER End Select Label1.Text = "Working ..." Label1.Refresh() ListBox1.Items.Clear() ListBox1.Visible = False numEntries = GetCacheURLList(cacheType) ListBox1.Visible = True Label1.Text = VB6.Format(numEntries, "###,###,###,##0") & "files found" End Sub Private Function GetCacheURLList(ByRef cacheType As Long) As Long Dim ICEI As INTERNET_CACHE_ENTRY_INFO Dim hFile As Long Dim cachefile As String Dim nCount As Long Dim dwBuffer As Long Dim pntrICE As Long dwBuffer = 0 hFile = FindFirstUrlCacheEntry(vbNullString, 0, dwBuffer) If (hFile = ERROR_CACHE_FIND_FAIL) And (Err.LastDllError = ERROR_INSUFFICIENT_BUFFER) Then pntrICE = LocalAlloc(LMEM_FIXED, dwBuffer) If pntrICE Then CopyMemory(pntrICE, dwBuffer, 4) hFile = FindFirstUrlCacheEntry(vbNullString, pntrICE, dwBuffer) If hFile <> ERROR_CACHE_FIND_FAIL Then Do CopyMemory(ICEI, pntrICE, Len(ICEI)) If (ICEI.CacheEntryType And cacheType) Then cachefile = GetStrFromPtrA(ICEI.lpszSourceUrlName) ListBox1.Items.Add(cachefile) nCount = nCount + 1 End If Call LocalFree(pntrICE) dwBuffer = 0 Call FindNextUrlCacheEntry(hFile, 0, dwBuffer) pntrICE = LocalAlloc(LMEM_FIXED, dwBuffer) CopyMemory(pntrICE, dwBuffer, 4) Loop While FindNextUrlCacheEntry(hFile, pntrICE, dwBuffer) End If End If End If Call LocalFree(pntrICE) Call FindCloseUrlCache(hFile) GetCacheURLList = nCount End Function どうしてもここから分からないので、お助けいただきたいです。 よろしくお願いいたします。

  • ファイルを読み込んだらVBがフリーズする

    ↓のコードだと、ファイルを読み込んだ時点でVBがフリーズします(平気なファイルも一部ある)。原因と解決法を教えてください。 Private Sub Command1_Click() CommonDialog1.Filter = "テキスト(*.txt)|*.txt|すべて(*.*)|*.*" CommonDialog1.FilterIndex = 1 CommonDialog1.Flags = cdlONFileMustExist CommonDialog1.CancelError = True On Error Resume Next CommonDialog1.ShowOpen If (Err = 0) Then FileRead CommonDialog1.FileName End If On Error GoTo 0 End Sub Private Sub FileRead(FL As String) Dim FileNo As Integer Dim strDAT As String Dim strELM As String Dim pot1 As Integer, pot2 As Integer Dim pDB1 As Integer, pDB2 As Integer FileNo = FreeFile() Open FL For Input As #FileNo While Not EOF(FileNo) Line Input #FileNo, strDAT strDAT = strDAT & ":" pot1 = InStr(strDAT, ":") While pot1 > 0 strELM = Left(strDAT, pot1) pot2 = InStr(strELM, "OPEN") While pot2 > 0 pDB1 = InStr(strELM, Chr(&H22)) If pDB1 > 0 Then '前の『"』の位置 pDB2 = InStr(pDB1 + 1, strELM, Chr(&H22)) If pDB2 > 0 Then RichTextBox1.Text = RichTextBox1.Text & _ Mid(strELM, pDB1 + 1, pDB2 - pDB1 - 1) & vbCrLf End If End If pot2 = InStr(pDB2 + 1, strELM, "OPEN") Wend strDAT = Mid(strDAT, pot1 + 1) pot1 = InStr(strDAT, ":") Wend Wend Close #FileNo End Sub

  • VB.NET初心者です。ファイルの入出力について困っています

    初心者です。複数のExcelファイルを読み込んで、編集してテキストファイルに出力したいのですが、 1ファイル読み込みにつき、1行出力したいのですが、取得した列の数分出力してしまい困って います。どなたか教えてください。よろしくお願いします。 一部略 'フォルダ内のファイルの数だけループさせる For i = 0 To int_fs_CNT - 1 Dim stFileName As String = System.IO.Path.GetFileName(fs(i)) ec_Book = ec_appli.Workbooks.Open(fs(i)) ec_appli.Visible = False Dim xlSheets As Excel.Sheets = ec_Book.Worksheets Dim ec_Sheet As Excel.Worksheet = CType(xlSheets.Item(1), Excel.Worksheet) 'データ取得 'ファイル名一部(一意) rng1 = CType(ec_Sheet.Cells(2, 1), Excel.Range) sCellVal1 = CStr(rng1.Value) If stFileName.StartsWith("Private_info") Then If stFileName.Contains(sCellVal1) Then 'テーブル名取得(1ファイル内で1セル取得) rng2 = CType(ec_Sheet.Cells(4, 1), Excel.Range) sCellVal2 = CStr(rng2.Value) & "," '列名など取ってくる Dim celCNT As Integer For celCNT = 8 To 57 '1ファイル読み込み確認用フラグ i_flag = 0 '列名(1ファイル内で複数のセル範囲取得) rng3 = CType(ec_Sheet.Cells(celCNT, 1), Excel.Range) '列名が空白になったらループをぬける If CStr(rng3.Value) = "" Then Exit For End If sCellVal3 = CStr(rng3.Value) & "," '-------------出力処理--------------- Dim sw As StreamWriter sw = New StreamWriter("C:\sample_CTB\table_sample\TEST.txt", True, System.Text.Encoding.GetEncoding(932)) '読み込み終了フラグ i_flag = 1 'フラグが1のとき書き込み開始 If i_flag = 1 Then '配列を使おうと考えたのですが、取得した列の数(1ファイル分)がうまく取れません 'lengthをしていすると、自分では10列とれたらlength = 10 ?(vbは0からじゃない?)となる と考えていたのですが、length = 2となっており、出力すると10行分出力されてしまいます。 Dim stArrayData1 As String() = sCellVal1.Split(","c) 'EXCELファイル名 Dim stArrayData2 As String() = sCellVal2.Split(","c) 'テーブル名(1データ) Dim stArrayData3 As String() = sCellVal3.Split(","c) '列名(複数取得:数はファイルによって違う ' ' '列の数分だけ列名を@COL1..2.3...とを増やしたいのですが、どうしたらよいでしょうか? '/////////// 'SQL文作成 Dim sqlX As String = "SELECT " & "@COL1" & "," & "@COL2" & "FROM" & "@TBNAME" '↑のようなselect文を作成して、配列に格納した値でreplaceして、一行のみ出力したいのですが、 '配列の使い方とループで混乱してしまい困っています。 '1つのExcelファイルにつき、一行を出力 sw.WriteLine(sqlX) sw.Close() End If Next Else Exit For End If End If Next

  • VB.NETでXMLの読み込みを行うと例外エラーが出てしまい大変困って

    VB.NETでXMLの読み込みを行うと例外エラーが出てしまい大変困っています。どなたかお願いします。 Protected Sub Button4_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button4.Click Dim FILENAME As String FILENAME = "C:\\TEST\" If i = 1 Then FILENAME = FILENAME & "AAA\111.xml" Call testmethod(FILENAME) ElseIf i = 2 Then FILENAME = FILENAME & "BBB\222.xml" Call testmethod(FILENAME) End If End Sub Private Sub testmethod(ByVal FILENAME) If File.Exists(FILENAME) Then Dim xlr As XmlTextReader xlr = New XmlTextReader(FILENAME) While xlr.Read() Select Case xlr.LocalName Case "Personal" TextBox1.Text = xlr.ReadString Case "LastUpdate" Label1.Text = xlr.ReadString End Select End While xlr.Close() End If End Sub こんな感じでコードを書いているのですがWhile xlr.Read()のところで例外エラーが出てしまいます。 原因が全然つかめず困っています。 New XmlTextReader(FILENAME)のFILENAMEを変数でなく直接パスを書くとうまくいくのですが変数にするとなぜかハンドリングできなくなります。 どなたかご解説お願いします。

  • 他のmdbファイルのform,macro,reportsをテキスト化し

    他のmdbファイルのform,macro,reportsをテキスト化したい。 asSaveTextを使って、mdbファイルのみが格納されている"C:\testA"フォルダにある全てのmdbファイルに対して、macro,form,reports等のvbeのソースコードを"C:\testB"にテキストファイルとして自動出力してくれるツールを作成したいのですが、エラーで止まってしまいます。何が悪いのかご教授下さいませんでしょうか。 下記のマクロがあるのは、"C:\testA""C:\testB"でもない場所にある適当なmdbファイルの標準モジュールです。 以下は、サンプルソースです。よろしくお願いしますm(--)m Option Compare Database Public Sub Output() Dim db As Database Dim souce As Container Dim InPutPass As String Dim OutPutPass As String Dim FileName As String Dim FilePass As String Dim objAccess Const cnsDIR = "\*.*" InPutPass = "C:\testA" OutPutPass = "C:\testB" FileName = Dir(InPutPass & cnsDIR, vbNormal) Do While FileName <> "" '開くファイルのパスを設定 FilePass = InPutPass & "\" & FileName 'Accessオブジェクトを作成します Set appAccess = CreateObject("Access.Application") 'MDBファイルを開きます appAccess.OpenCurrentDatabase (FilePass) 'macroをテキスト化する Set souce = appAccess.Containers("Scripts") For Each d In souce.Documents If Left(d.Name, 1) <> "~" Then Application.SaveAsText acMacro, d.Name, OutPutPass & "\Macro_" & d.Name & ".txt" End If Next d 'Formをテキスト化する Set souce = db.Containers("Forms") For Each d In souce.Documents If Left(d.Name, 1) <> "~" Then Application.SaveAsText acForm, d.Name, OutPutPass & "\Form_" & d.Name & ".txt" End If Next d 'Reportをテキスト化する Set souce = db.Containers("Reports") For Each d In souce.Documents If Left(d.Name, 1) <> "~" Then Application.SaveAsText acReport, d.Name, OutPutPass & "\Reports_" & d.Name & ".txt" End If Next d 'MDBファイルを閉じます appAccess.CloseCurrentDatabase 'Accessオブジェクトの破棄 Set appAccess = Nothing '次のファイル名を取得 FileName = Dir() Loop End Sub

  • フォルダ内の全てのファイル開く時間短縮の方法

    Excelのマクロを使ってフォルダ内の全てのファイルを開く以下のコードを利用しているのですが(教えてgoo!で教えて頂いたコードです)、ファイル数が10個くらいあるため全部開くのに1分くらいかかってしまいます。 もっと時間を短縮することはできませんでしょうか? Sub OpenAllBook()   Dim FileName As String   Dim OpenedBook As Workbook   Dim IsBookOpen As Boolean   ChDir ("フォルダ名")   FileName = Dir("*.xls")   Do While FileName <> ""    If FileName <> ThisWorkbook.Name Then     IsBookOpen = False     For Each OpenedBook In Workbooks      If OpenedBook.Name = FileName Then       IsBookOpen = True       Exit For      End If     Next     If IsBookOpen = False Then      Workbooks.Open (FileName)     End If    End If    FileName = Dir()   Loop End Sub