• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:vba 直前の操作はキャンセルされました)

VBAでサブフォームの並び替えを操作しようとした時のエラー回避方法について

このQ&Aのポイント
  • VBAを使用してAccess2000でサブフォームの並び替えを操作しようとした時に、「直前の操作はキャンセルされました.」というエラーが表示される問題が発生しています。
  • メインフォームのオプショングループの更新後処理イベントで並び替えを行っていますが、エラーが発生してしまいます。
  • このエラーは、サブフォームのプロパティを変更することが原因と思われますが、具体的な回避策がわかりません。どなたか回避策を教えていただけないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

訂正2 単にクエリをレコードソースにすれば済む問題のようにも思えます。

その他の回答 (2)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

訂正  If tdf.Name = AAA Then  If tdf.Name = "AAA" Then です。

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

最初に直接的な回答から、 メニュー→ツール→オプションの『名前の自動修正』のチェックを外す。 最適化を試す、もしくは新規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 のような感じで。