現在 Access2000.adp で作成したプロジェクトをBase+SQLServer2008R2へ移行できるかを評価がてら試しているのですが
adpの方では
1.メインフォームで コンボ+オプションボタン(複数有り)で選択した条件により SQLを作成
2.sub_From.Form.RecordSource = 上記で作成したSQL
3.sub_From.Form.Requery
でサブフォームの表示を更新しているのですが、Baseで上記の 2. 3.のような実装は可能でしょうか?
Access の Form.RecordSource = SQL文 は可能でしょうか?
Re: Access の Form.RecordSource = SQL文 は可能でしょうか?
Base におけるフォームは Access と互換性は全くありません。(読み込みも不可)
なので、Base 上で新規にフォームの作成、OpenOffice Basic による記述、イベントの割り当てを行う必要があります。
結果、サブフォームのソースにSQLを指定し再読み込み、表示を行う事は可能です。
(このサイトへのファイル添付のサイズ上限が 128KB なので Base サンプルを添付できませんでした。)
一部抜粋 MainForm上のコンボボックスのイベントに以下を割り当て
Sub select1(oEvent)
'イベントから MainForm の取得
oCombo1 = oEvent.Source.getModel()
oForm = oCombo1.getParent()
'Subform の取得
oSubForm = oForm.getByName("SubForm")
'サブフォームのソースの種類に Sql を指定
oSubForm.CommandType = 2
Sql = "Select * FROM ""T_売上"" WHERE ""店名""='" & oCombo1.Text & "' "
oSubForm.Command = Sql
'サブフォームの再読み込み
oSubForm.reload()
End Sub
なので、Base 上で新規にフォームの作成、OpenOffice Basic による記述、イベントの割り当てを行う必要があります。
結果、サブフォームのソースにSQLを指定し再読み込み、表示を行う事は可能です。
(このサイトへのファイル添付のサイズ上限が 128KB なので Base サンプルを添付できませんでした。)
一部抜粋 MainForm上のコンボボックスのイベントに以下を割り当て
Sub select1(oEvent)
'イベントから MainForm の取得
oCombo1 = oEvent.Source.getModel()
oForm = oCombo1.getParent()
'Subform の取得
oSubForm = oForm.getByName("SubForm")
'サブフォームのソースの種類に Sql を指定
oSubForm.CommandType = 2
Sql = "Select * FROM ""T_売上"" WHERE ""店名""='" & oCombo1.Text & "' "
oSubForm.Command = Sql
'サブフォームの再読み込み
oSubForm.reload()
End Sub
Re: Access の Form.RecordSource = SQL文 は可能でしょうか?
> 結果、サブフォームのソースにSQLを指定し再読み込み、表示を行う事は可能です。
ができれば動作上問題ありませんでした。ありがとうございます!! 動作が確認できました
ができれば動作上問題ありませんでした。ありがとうございます!! 動作が確認できました
OpenOffice 3.3 on Windows XP SP3
-
- 記事: 1
- 登録日時: 3月 21, 2024, 7:31 pm
Re: Access の Form.RecordSource = SQL文 は可能でしょうか?
In migrating a project from Access 2000 ADP and bloxd io to Base with SQL Server 2008 R2, you may encounter some differences in functionality and implementation. While Access ADP allowed for direct manipulation of SQL and updating the display of subforms, Base operates differently.
OpenOffice 3.1