[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/04/13(Wed) 21:19
投稿者名:やくも
Eメール:
URL :
タイトル:
フォーム間でのデータの受け渡し
VB6とORACLE9iで、oo4oを使ってデータの取り出しを行っています。
今、FORM_A、FORM_B、という2つのフォームがあり、FORM_Aで取得
したSQLの結果をFORM_Bに渡して、FORM_Bで展開したいのですが。
又、FORM A,BのObjectやString、Integerの値を受け渡しする文法
を具体的に知りたいのですが。


Private Sub Command1_Click()
Dim objSess         As Object
Dim objDb           As Object
Dim objDs           As Object
Dim objCol          As Object
Dim str_SQL         As String

    Set objSess = CreateObject("OracleInProcServer.XOraSession")
    Set objDb = objSess.OpenDatabase(strDBName, strUser & "/" & strPass,
0&)
    
    str_SQL = ""
    str_SQL = "・・・・・・・・・・・・・"

    Set objDs = objDb.DbCreateDynaset(str_SQL, 12&)
    Set objCol = objDs.Fields
    If objDs.EOF Then
        Call MsgBox("データが存在しません。")
        Exit Sub
    End If

    FORM_B.Show 1 (ここで、objDsを受け渡したい)
    Show

End Sub

投稿時間:2005/04/13(Wed) 21:33
投稿者名:ガッ
Eメール:
URL :
タイトル:
Re: フォーム間でのデータの受け渡し
> VB6とORACLE9iで、oo4oを使ってデータの取り出しを行っています。
> 今、FORM_A、FORM_B、という2つのフォームがあり、FORM_Aで取得
> したSQLの結果をFORM_Bに渡して、FORM_Bで展開したいのですが。
> 又、FORM A,BのObjectやString、Integerの値を受け渡しする文法
> を具体的に知りたいのですが。
では、こんなのを作ってみてください。

'form1
private sub form_load()
    form2.y me
end sub

'form2
public sub y(byval x as form)
    msgbox x.name
end sub

受け渡しといっても、結局は少し広いスコープのメンバを呼び出して、特定の値を渡すだけです。
…では。

投稿時間:2005/04/13(Wed) 23:44
投稿者名:やくも
Eメール:
URL :
タイトル:
Re^2: フォーム間でのデータの受け渡し
説明不足ですみません。

FORM_Aで取得したselectの結果のobjDsをFORM_Bに渡して
展開したいのですが、その展開の処理をFROM_BのForm_Load
で行い表示したいのです。
FORM A,Bの値を受け渡しする文法を具体的に教えてください。

----  FORM_A ------
Private Sub Command1_Click()
Dim objSess As Object
Dim objDb As Object
Dim objDs As Object
Dim objCol As Object
Dim str_SQL As String

   Set objSess = CreateObject("OracleInProcServer.XOraSession")
   Set objDb = objSess.OpenDatabase(strDBName, strUser & "/" & strPass,0&am
p;)

   str_SQL = ""
   str_SQL = "・・・・・・・・・・・・・"

   Set objDs = objDb.DbCreateDynaset(str_SQL, 12&)
   Set objCol = objDs.Fields
   If objDs.EOF Then
     Call MsgBox("データが存在しません。")
     Exit Sub
   End If

   FORM_B.Show 1 (ここで、objDsを受け渡したい)
   Show

End Sub

----  FORM_B-----
Private Sub Form_Load()
  ここで、FORM_Aから渡されたobjDsを展開したい
End_Sub

Private Sub Command1_Click()
End Sub

投稿時間:2005/04/14(Thu) 00:03
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: フォーム間でのデータの受け渡し
> Dim objSess As Object
> Dim objDb As Object
> Dim objDs As Object
> Dim objCol As Object

上記をグローバル変数で宣言したら。

投稿時間:2005/04/14(Thu) 01:12
投稿者名:やくも
Eメール:
URL :
タイトル:
Re^4: フォーム間でのデータの受け渡し
> > Dim objSess As Object
> > Dim objDb As Object
> > Dim objDs As Object
> > Dim objCol As Object
>
> 上記をグローバル変数で宣言したら。

グローバル変数ですか。
モジュール内で有効にして、他のプロシージャでも見れるようにすると
いうことですが。
この方法が、簡単ですね。
他にはないですね。

投稿時間:2005/04/14(Thu) 07:57
投稿者名:るしぇ
Eメール:
URL :
タイトル:
Re^5: フォーム間でのデータの受け渡し
> 他にはないですね。
ガッさんの回答で既に具体的な方法が示されてます。
メソッドやプロパティの引数として渡せます。

投稿時間:2005/04/14(Thu) 23:36
投稿者名:やくも
Eメール:
URL :
タイトル:
Re^6: フォーム間でのデータの受け渡し
> > 他にはないですね。
> ガッさんの回答で既に具体的な方法が示されてます。
> メソッドやプロパティの引数として渡せます。

ガッさんの回答でためしてみました。

'form1
private sub form_load()
form2.y me
end sub

'form2
public sub y(byval x as form)
msgbox x.name
end sub

「form2.y me」や「public sub y(byval x as form)」の使い方が初めてなのですが
どのよな文法なのでしょうか。

また、form2でFrom_Loadや他のプロシージャを書いたのですが全く認識されません。
なぜなのでしょうか。