- ベストアンサー
アクセス97でモジュールを使用したい
基本的な内容かもしれませんがアクセスで テーブルの中のフィールドに 入っているデータを関数を用いて変換させたいのです。 その関数はモジュールに登録しています。 マクロを使えば モジュールを開くとありますが フィールドの中の値を全てに摘要させたい場合 どうすればいいのでしょうか? モジュールの中に該当テーブルからデータを1つ目から取得し それをフィールドの最後まで繰り替えす 内容でいいのでしょうか? 具体的には 1.53 を 1 にしたいのです。 以上、宜しくお願いします。 2.43 2 6.85 7
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
モジュールとして変換させるにはこんな感じで良いと思います。 変換する値があるフィールドをSuutiとして Option Compare Database Option Explicit Function Base_Henkan() As Boolean Set mb = Db.OpenRecordset("テーブル名", dbOpenTable) Msg = "対象データ変換中..." ReturnValue = SysCmd(acSysCmdInitMeter, Msg, 100) mb.MoveFirst Do Until mb.EOF ReturnValue = SysCmd(acSysCmdUpdateMeter, mb.PercentPosition) mb.Edit mb![Suuti] = 変換の関数を記述する mb.Update mb.MoveNext Loop mb.Close Exit Function End Function 簡単に書きましたがこんなループでいけるはずです。 Base_Henkan() をフォームのボタンのイベントに指定すれば良いのではないでしょうか。
その他の回答 (2)
- osamuy
- ベストアンサー率42% (1231/2878)
モジュールじゃなきゃ、だめですか? クエリだけで実現できますけど。 update テーブル set フィールド=Cint( フィールド + 0.2 ); VBAで、DBを操作したいのなら、ADOかDAOについてのヘルプが参考になります。
- yasuhii
- ベストアンサー率50% (1/2)
最終的にどうしたいのかわからないので中途半端な答えになりますけど、 クエリーで該当のテーブルを開いて、フィールドのところに 関数名([テーブルのフィールド名]) とすればテーブルの全レコードの該当フィールドについての関数実行結果が得られますよ。 その前に関数という限りは function ほにゃらら (Byval 引数名 as double) as integer ってなつくりになってないとだめですけど・・・Subじゃなくって。
補足
回答ありがとうございます。 小数点以下 1桁の数値を切り上げしたいのです。