- ベストアンサー
VBのデータ
VBのデータのとこにIDを入れるとそのIDのとこに飛ぶようにしたいんですがうまく出来ません どうすればいいんでしょうか? (エクセルとVBを使い住所録DBを作成した) (勉強のためです)
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#1からです。 db1というコントロールはデータベースのコントロールでしょうか? そのデータベースのコントロールをフィールド単位に参照したり、その検索したレコードのフィールドを書き換えてupdateするようなメソッドは用意されていないでしょうか? お使いのコントロールの使い方を見ているとそんな使い方が出来ると思います。 後は#2の方が仰っているようにCreateObjectでExcelオブジェクトを呼び出し参照設定でMicrosoftExcel*.0ObjectLibraryを定義すればVBAと同じようにCellやRangeのオブジェクトが呼び出せるようになります。 #3の方がお書きになっているのは既にCreateObjectでExcelオブジェクトを作成してからのお話ですね。 VBのコードとしてDBのようにアクセスするのでしたらDBアクセスコントロールで追加と更新のメソッドをhelpで調べればサンプルが載っているはずです(この部分は曖昧です。)
その他の回答 (4)
- taknt
- ベストアンサー率19% (1556/7783)
たとえば IDが A1からA1000 まで 入ってたとします。 dim r as range set r = range("A1:A1000").find("100") if not r is nothing then msgbox r.address(0,0) end if んで 取得できます。
- ryu_d
- ベストアンサー率58% (33/56)
つまり、エクセルのセルをプログラムからコントロールしたいという認識でいいのでしょうか? と仮定すると CreateObjectをつかわれては?
- Te-Sho
- ベストアンサー率52% (247/472)
すいません。もう少し具体的に書いてもらえませんか? "VBのデータのとこ"と"そのIDのとこ"がどこかわかりません。 そもそもVBとはVBですかExcelのVisualBasicEditerでしょうか。 まず、具体的な仕様をわかりやすく説明することもプログラムを書くことにおいて重要となります。
- Te-Sho
- ベストアンサー率52% (247/472)
すいません。もう少し具体的に書いてもらえませんか? "VBのデータのとこ"と"そのIDのとこ"がどこかわかりません。 そもそもVBとはVBですかExcelのVisualBasicEditerでしょうか。 まず、具体的な仕様をわかりやすく説明することもプログラムを書くことにおいて重要となります。
補足
いえVisualBasicです。 エクセルに住所録がはいています。 それをVB側で動かすのです。 そしてデータの数字(ID)が入っている部分を直接触りたいんです。 たとえばIDが100の人に飛ばしたりしたいのです。 プログラムはこんなんです。 Private Sub Command_sai_Click() Text_sa = 0 Command_sai.Visible = False End Sub Private Sub Command1_Click() Dim LngReturn As Long Dim StrCommand As String StrCommand = Trim$(Text_hp) LngReturn = ShellExecute(Me.hwnd, "open", StrCommand, vbNullChar, vbNullChar, Sw_Shownormal) End Sub Private Sub Command2_Click() Dim LngReturn As Long Dim StrCommand As String StrCommand = Trim$(Text_mail_ke) If LCase(Left(StrCommand, 7)) <> "mailto:" Then StrCommand = "mailto:" & StrCommand End If LngReturn = ShellExecute(Me.hwnd, "open", StrCommand, vbNullChar, vbNullChar, Sw_Shownormal) End Sub Private Sub Command3_Click() Dim LngReturn As Long Dim StrCommand As String StrCommand = Trim$(Text_mail_pc) If LCase(Left(StrCommand, 7)) <> "mailto:" Then StrCommand = "mailto:" & StrCommand End If LngReturn = ShellExecute(Me.hwnd, "open", StrCommand, vbNullChar, vbNullChar, Sw_Shownormal) End Sub Private Sub Command4_Click() Db1.Caption = Text_j End Sub Private Sub Command5_Click() Msg = MsgBox("データを削除してよろしいですか?", vbOKCancel + vbQuestion, App.Title) If Msg = vbOK Then Text_sa = 1 Text_name = "" Text_yuubin = "" Text_add = "" Text_tel = "" Text_fax = "" Text_mail_ke = "" Text_mail_pc = "" Text_hp = "" Text_sei = "" Text_ketu = "" End If End Sub Private Sub Command6_Click() End Sub Private Sub Db1_Reposition() If Db1.Recordset.EOF Then Db1.Caption = Text_no.Text Else Db1.Caption = Text_no.Text End If Command_sai.Visible = False Timer1.Interval = 10 End Sub Private Sub Db1_Validate(Action As Integer, Save As Integer) If Db1.Recordset.EOF Then If Save Then Text_no.Text = CStr(Db1.Recordset.RecordCount + 1) End If End If End Sub Private Sub Timer1_Timer() If Text_sa = 1 Then Msg = MsgBox("このIDは一度削除されています。基本的には再利用はお勧めできません", vbOKOnly + vbQuestion, App.Title) Command_sai.Visible = True Timer1.Interval = 0 End If End Sub エクセルには下記のデータがはいています ID 名前 削除 〒 住所 TEL FAX 携帯 メール(携帯) メール(PC) HP 生年月日 血液型
お礼
皆様 ご回答ありがとうございました。