2009-04-16 18 views
0

htmlページ内から、フィルタリング(プリンタの選択とレポートに印刷する部分)を行う子ウィンドウを作成します。子ウィンドウにパーツ選択を表示するには、親ウィンドウからGetParts関数を呼び出して、そのレコードセットを子に返す必要があります。子ウィンドウ内の変数が親からの値を受け取りません

を子ウィンドウ - 親ウィンドウで

Sub LoadParts(frmRptFilter) 
Dim sql 
Dim oParts 
Set oParts = CreateObject("ADODB.Recordset") 
oParts.Fields.Append "Part", adBSTR , 30 
oParts.Open 
oParts = window.opener.GetParts(oParts) 'Since oParts was passed as a parameter I did not believe this to be necessary, but when it didn't work as expected I tried returning it this way....didn't work either 
'more code follows 

> - >

Function GetParts(oParts) 
Dim sql 

sql = "SELECT Job.Part_Number FROM Job RIGHT JOIN Packlist_Detail ON Packlist_Detail.Job = Job.Job "_ 
    & "WHERE Packlist_Detail.Packlist LIKE '" & sPL & "'" 

CloseRS(oRS) 
oRS.Open sql, oConn, adOpenStatic, adLockReadOnly 

oRS.MoveFirst 

If Not (oRS.BOF AND oRS.EOF) Then 
    Do while not oRS.EOF 
     oParts.AddNew 
     oParts("Part").Value = oRS(0) 
     oParts.Update 
     oRS.MoveNext 
    Loop 
End If 

'GetParts = oParts 'Since oParts was passed as a parameter I did not believe this to be necessary, but when it didn't work as expected I tried returning it this way....didn't work either 
End Function 

私はフィルタとレポートを作成するために私を必要とするソフトウェアのレポートを書く:ここに役立ついくつかのコードですクリスタルレポートオブジェクトを含むHTMLページ。私がこれらのレポートを書いているソフトウェアは、他のものの中でもDB接続という点で私ができることを制限しています。だから、私はこのようにする必要があります。

親ウィンドウ内のoPartが正しく塗りつぶされることを確認しました。それは何ですか?私はちょうどそれが私の子供のウィンドウに満ちて得ることができません。だから質問は、私はどのように子ウィンドウで値を取得するのですか?

+0

GetPartsコールの後にoPartsに含まれるものは何ですか? – Tester101

+0

私が今働いている実際のレポートは、顧客POが袋に入れて配達するというラベルですが、実際のパックリストレポートが不足しているため、この情報を親ウィンドウに入れることができません。その子ウインドウでは、ラベルのためにプリンタとパート、したがってoPartsを選択できます。 –

答えて

0

Tester101をお試しください: オブジェクトに必要な 'oParts':

は、親関数でエラーを与えたあなたが言っしよう

Set oParts = CreateObject("ADODB.Recordset") 
oParts.Fields.Append "Part", adBSTR , 30 
oParts.Open 

そして今、すべてが素晴らしい作品:は、私はそこでoPartsレコードセットを定義し、これを見て。

この質問に対する真の答えは、Tester101の答えと、親の関数内の子ウィンドウに戻るレコードセットの定義です。

ありがとうTester101 !!!!

+0

ウィンドウ間の参照によってオブジェクトが渡されないようにするものがない限り、元のコードが機能しなかった理由は分かりません。とにかく助けてくれてうれしい。 – Tester101

+0

私はあなたの元のコードを実行する場合は知っているが、機能の定義をFunction GetParts(ByRef oParts)に変更することができます。 – Tester101

+0

私は後でそれを試し、何が起こるかを知らせます。 –

1

この
子ウィンドウ


Set oParts = window.opener.GetParts(oParts) 

親ウィンドウ


Set GetParts = oParts 
関連する問題