- ベストアンサー
VBAでサブフォームの並び替えを操作しようとした時のエラー回避方法について
- VBAを使用してAccess2000でサブフォームの並び替えを操作しようとした時に、「直前の操作はキャンセルされました.」というエラーが表示される問題が発生しています。
- メインフォームのオプショングループの更新後処理イベントで並び替えを行っていますが、エラーが発生してしまいます。
- このエラーは、サブフォームのプロパティを変更することが原因と思われますが、具体的な回避策がわかりません。どなたか回避策を教えていただけないでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
訂正2 単にクエリをレコードソースにすれば済む問題のようにも思えます。
その他の回答 (2)
- nicotinism
- ベストアンサー率70% (1019/1452)
訂正 If tdf.Name = AAA Then If tdf.Name = "AAA" Then です。
- nicotinism
- ベストアンサー率70% (1019/1452)
最初に直接的な回答から、 メニュー→ツール→オプションの『名前の自動修正』のチェックを外す。 最適化を試す、もしくは新規MDBを作成してすべてインポート。 念のために『名前の自動修正』オプションは無し。 で解決するかもしれません。 ところで、提示されたコードがエラーもなく進むのは不思議です。 'テーブル作成 strSQL = "CREATE TABLE AAA (" strSQL = strSQL & " [選択] [bit] NULL ," strSQL = strSQL & " [番号] [varchar] (7) NOT NULL ," strSQL = strSQL & " [カナ] [varchar] (20) NULL ," strSQL = strSQL & " PRIMARY KEY(番号))" db.Execute strSQL は 'テーブル作成 Dim strSQL as string strSQL = "CREATE TABLE AAA (" strSQL = strSQL & " 番号 varchar(7) CONSTRAINT BANGO PRIMARY KEY," strSQL = strSQL & " 選択 bit NULL," strSQL = strSQL & " カナ varchar(20) NULL)" Currentdb.Execute strSQL のような感じでは? 'データ作成 の方も、やりたいことは分かりますが? テーブル作成処理も無くして、単純にテーブル作成クエリで済ませてはどうですか? Dim strSQL as string Dim tdf As DAO.TableDef '既存テーブル削除 For Each tdf In CurrentDb.TableDefs If tdf.Name = AAA Then CurrentDb.Execute ("drop table " & tdf.Name) End If Next strSQL = "SELECT 1 AS 選択, 番号, カナ INTO AAA FROM BBB" Currentdb.Execute strSQL のような感じで。