• ベストアンサー

Access 特定のフィールドを一発で0にするには?

Access+VB です フォームで特定のフィールドを一発で全て0にする方法はありませんか?

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

下記のSQLを UPDATE テーブル1 SET テーブル1.フィールド1 = 0, テーブル1.フィールド2 = 0; これでテーブル1にあるフィールド1とフィールド2は全て0になります。 これをフォーム上のコントロールの何かのイベントにいれる。

situmonnsya
質問者

お礼

Dim db As DAO.Database をなくしたらできました。 ありがとうございました。

situmonnsya
質問者

補足

Public Function ippatu() Dim db As DAO.Database Dim test As String Set db = CurrentDb test = "UPDATE TB_name SET filed_name = 0" db.Execute test End Function と、しましたが Dim db As DAO.Databaseで「ユーザー定義型は定義されてません」とエラーになります。 基礎知識が乏しくて悲しいです。

その他の回答 (2)

回答No.3

こんな感じで 良いと思いますよ Private Sub ボタン_Click Set Mrdb = CurrentDb Set Mrtbl = Mrdb.OpenRecordset("テーブル名") 'テーブル名には0にするフィールドのテーブル名を記入 Mrtbl = MoveFirst Do Until Mrtbl.EOF Mrtbl.Edit Mrtbl!フィールド名 = 0  'フィールド名には 0にするフィールド名を記入 Mrtbl.Update Mrtbl.MoveNext Loop End Sub

situmonnsya
質問者

補足

試して見ましたが、私の書き方ヘボだったのか無限ループに入ってしまったみたいです。 今は下の方法でやってますが DoCmd.GoToRecord , , acLast k = Me.CurrentRecord For i = k To 1 Step -1 フィールド名 = 0 If Me.CurrentRecord = 1 Then Exit For DoCmd.GoToRecord , , acPrevious Next とても時間がかかります。 postmanchuさんの方法だと、瞬時に終わりますか?

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

>フォームで特定のフィールドを一発で全て0にする方法は・・ ボタン等のコントロールに0を代入するようにするのではどうですか 例えば0にするフィールドのテキストボックス名をText1・Text2としてボタンをBtn1とした場合 Btn1のクリック時のイベントに Private Sub Btn1_Click() Me!Text1 = 0 Me!Text2 = 0 End Sub とすればボタンBtn1をクリックした時にText1とText2は0になります。 ボタンではなく他のコントロールのイベントに入れても出来ます。 こういう事でなければゴメンなさい。

situmonnsya
質問者

補足

ありがとうございます。 でも、この方法ではフォーカスのあるレコード一個だけのフィールドしか代入できません。 説明が不足で申し訳なかったです。 フォーカスのあるレコード分だけでなく、全てのレコードの特定フィールドに代入したいのですが・・・

関連するQ&A