Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


173 / 500 ページ ←次へ | 前へ→

【9814】Re:VBAの型指定について
回答  小僧  - 07/9/7(金) 18:07 -

引用なし
パスワード
   ▼ひろ さん:
こんにちは。

>上記2のどちらかで値をとってきます。

ご提示された情報だけですと状況が解りづらいのですが、

A) 同一PC、同一フォームで何回かやると結果が違う。
B) 同一PC、同じ様な機能を設けたフォームのつもりなのに結果が違う。
C) 違うPCで同一フォームなのに結果が違う。

などなど、色々な状況が考えられますよね。

B) でありがちな事として、

テキストボックスの書式が空 ⇒ 2007年09月07日
日付(L)、yyyy\年mm\月dd\日 ⇒ 2007/09/07

などと違う結果を返す事がありますね。
・ツリー全体表示

【9813】Re:AccessからSQLサーバーへの登録について
お礼  けいこ  - 07/9/7(金) 16:13 -

引用なし
パスワード
   myDB.BeginTrans
↑が2個有りました…

ご迷惑おかけしました。。。
ありがとう御座いました。
・ツリー全体表示

【9812】VBAの型指定について
質問  ひろ  - 07/9/7(金) 16:07 -

引用なし
パスワード
   質問があります。
フォーム【F】に【A】と言うテキストがあり
【A】の定型入力プロパティを[9999\年99\月99\日;0;_]と設定しています。

で、VBAで【A】の値を取得した場合

  If False = IsDate([Forms]![F]![A]) Then
    MsgBox "入力された【年月日】は年月日として認識できません。"
    Exit Sub
  End If
  
  1.20070907
  2.2007年09月07日

上記2のどちらかで値をとってきます。
1.の値のとり方に固定したいのですが…どのようにすれば宜しいでしょうか?

また原因も教えていただければ幸いです
・ツリー全体表示

【9811】Re:10の位で四捨五入
お礼  あきさみよー  - 07/9/7(金) 15:45 -

引用なし
パスワード
   小僧さん、ありがとうございます。
Round関数を使う事でほぼ解決いたしました。
確かに一部四捨五入の結果が違うところが出てきますが。
EXCELのRoundと定義が違うのでしょうがないでしょうが。
ひとまず致命的な欠陥が出ない限りこれで続け、どうしても
具合が悪いならその時は長い式で計算をしないといけませんね。
その際はまたよろしくお願いいたします。
・ツリー全体表示

【9810】Re:2テーブル共通のレコード検索について
回答  小僧  - 07/9/7(金) 14:27 -

引用なし
パスワード
   ▼ゆっぴぃ さん:
こんにちは。

具体的な例示がないため、当方にはちょっと解りづらいです。
見当違いの回答になっていたら申し訳ありません。


テーブルA
ID 品名  単価
1 りんご  100
2 みかん  50
3 なし   150


テーブルB
ID 品名  単価
1 りんご  Null
3 ぶどう  Null


テーブルAのID、品名とテーブルBのID、品名が一致した場合のみ
テーブルBの単価を更新をしたい、という様な事でしたら、こんな感じです。

まずはID、品名が一致しているレコードの検索です。

SELECT テーブルA.ID, テーブルA.品名
FROM テーブルA
LEFT JOIN テーブルB
ON (テーブルA.品名 = テーブルB.品名) AND (テーブルA.ID = テーブルB.ID)
WHERE テーブルB.ID Is Not Null;


また一発で更新を行いたい場合は

UPDATE テーブルA
LEFT JOIN テーブルB
ON (テーブルA.品名 = テーブルB.品名) AND (テーブルA.ID = テーブルB.ID)
SET テーブルB.単価 = テーブルA!単価
WHERE テーブルB.ID Is Not Null;


こんな感じでしょうか。

テーブルA、テーブルBを作った後、
クエリのSQLビューに上記SQLを記載し
デザインビューに戻してみると
やっている事が解りやすくなるかもしれません。
・ツリー全体表示

【9809】2テーブル共通のレコード検索について
質問  ゆっぴぃ  - 07/9/7(金) 13:20 -

引用なし
パスワード
   すみませんがどなたか教えてください。


テーブルA・Bがあってそれぞれに共通のフィールドがいくつかあります。
この共通フィールドにまったく同じデータが入っているレコードだけを探し、
該当するレコードがあればそのレコードにあるデータを追記したいのです。

単純にまったく同じデータをもつレコードを探すのですが、自分が思い
ついたのはVBAを使って、フィールドの値が一致するかをIFで
判定してそれを条件のフィールドについてすべて行い、すべての条件を満たした
場合のみレコードを追記する・・・・

というものでした。


きっとこれならできないことはないのかもと思うのですが、もっと簡単な
方法というのはあるのでしょうか?クエリにはそれらしいのはなかった
ような気がするのですが。

どなたかご存知でしたら教えてください。お願いします。
・ツリー全体表示

【9808】Re:10の位で四捨五入
回答  小僧  - 07/9/6(木) 15:49 -

引用なし
パスワード
   ▼あきさみよー さん:
こんにちは。

>演算で税抜き後の額を計算した値を四捨五入して

Round関数を使うと丸める事が可能ですが、
正確な意味での四捨五入とは違うので注意して下さい。

MSサポートオンライン
[OFFXP]VBAのRound関数について

h tp://support.microsoft.com/kb/418216/ja
(こちらの掲示板は直リンクが禁止ですので補完して下さい)


> 10の位で整数にしたいのです。

元の値段を 10 で割って、
Round関数で処理したものに 10 を再度かけてあげると
お望みのような事が可能だと思われます。


Round関数の丸めでなく正確な四捨五入がされたいという事でしたら
ユーザ定義関数を作る必要があるかと思われます。
・ツリー全体表示

【9807】画像ファイルを参照して開きたい
質問  yu  - 07/9/6(木) 13:30 -

引用なし
パスワード
   コマンドボタンをサブフォームに設定して、
クリックすると、"Microsoft Photo Editor"が起動して"フォルダ1"
の中の画像ファイルを NO を
参照して開くようにしたいのですが? 

上手く出来ません。
アドバイスをお願いします。


strFile = [Forms]![フォーム]![サブフォーム]![NO]
Call Shell("C:\Program Files\Common Files\Microsoft Shared\PhotoEd\PHO
TOED.EXE D:\フォルダ1\" & strFile & ".jpg", vbNormalFocus)


ではダメでした!!↑↑
・ツリー全体表示

【9806】10の位で四捨五入
質問  あきさみよー  - 07/9/6(木) 13:10 -

引用なし
パスワード
   演算で税抜き後の額を計算した値を四捨五入して10の位で整数にしたいのです。
例えば5500円なら5240円、6000円なら5710円という具合に。
参考書ではFixとSgnを使ったら式ができるみたいですがよくわかりません。
ExelでいうところのTRUNCにあたる式を作りたいのです。
みなさん、よろしくお願いします。
・ツリー全体表示

【9805】Re:accessでの計算方法
お礼  はせ E-MAIL  - 07/9/6(木) 10:54 -

引用なし
パスワード
   ▼hatena さん:
>> Z = a - ( b - c )の計算で
>> Z = 20 - (10 - 20 )の時 Z=20 にしたいのですが
>> ()内でのマイナスはゼロ
>> 
>> どの様にしたら良いのでしょうか?
>
>VBAのコードでの話ですか。
>
>If b - c < 0 Then
>  Z = a
>Else
>  Z = a - (b - c)
>End If

お礼  hatenaさん 有難う御座いました。
考えすぎていました。
・ツリー全体表示

【9804】Re:accessでの計算方法
回答  hatena  - 07/9/6(木) 0:13 -

引用なし
パスワード
   > Z = a - ( b - c )の計算で
> Z = 20 - (10 - 20 )の時 Z=20 にしたいのですが
> ()内でのマイナスはゼロ
> 
> どの様にしたら良いのでしょうか?

VBAのコードでの話ですか。

If b - c < 0 Then
  Z = a
Else
  Z = a - (b - c)
End If
・ツリー全体表示

【9803】accessでの計算方法
質問  はせ E-MAIL  - 07/9/5(水) 21:14 -

引用なし
パスワード
   どなたか 教えて下さい。
access2002を使用しています。

 Z = a - ( b - c )の計算で
 Z = 20 - (10 - 20 )の時 Z=20 にしたいのですが
 ()内でのマイナスはゼロ
 
 どの様にしたら良いのでしょうか?

 宜しくお願い致します。
・ツリー全体表示

【9802】Re:日付による抽出について(毎年毎月のA...
回答  Nao  - 07/9/3(月) 17:42 -

引用なし
パスワード
   >日付 yyyy/mm/dd 形式の文字列
文字型というのが気になるところではありますが
yyyy/mm/ddに必ず整形されているとすると・・・

>・毎年の、たとえば8月24日から9月10日までの記事を抽出したい

選択クエリーで
フィールド I 式1:Right([日付],5) 
抽出条件  I Between "08/24" And "09/10" 

>・毎年・毎月の 12日から14日までの記事を抽出したい

選択クエリーで
フィールド I 式1:Right([日付],2) 
抽出条件  I Between "12" And "14"
・ツリー全体表示

【9801】日付による抽出について(毎年毎月のA日か...
質問  くまごろう  - 07/9/3(月) 16:36 -

引用なし
パスワード
   日付 yyyy/mm/dd 形式の文字列
記事 メモ型

という2つのフィールドを使ったフォームで
・毎年の、たとえば8月24日から9月10日までの記事を抽出したい
・毎年・毎月の 12日から14日までの記事を抽出したい
このような場合にはどうすれば良いのでしょうか。

日付のフィールドを日付型に変更して、Between を使っても ????/??/12 などとするとエラーになってしまいます。なにか良い方法はないでしょうか。
VBA初心者です。よろしくお願いします。
・ツリー全体表示

【9800】Re:フィールドに入力した値を判定したい
回答  hatena  - 07/9/2(日) 16:12 -

引用なし
パスワード
   >フィールドに入力した値をある基準値に照らして判定し別のフィールドにOK/NGを表示したいのですが?
>基準値10.5±0.1に対し入力値10.01→判定OK 又入力値10.06→判定NG と言うように
>宜しくお願い致します。

演算で求められる値は、フィールドに格納せずに、必用なときにその都度
計算するというのが、データベース設計の原則です。

ところで、「基準値10.5±0.1に対し」ということは、10.4 〜 10.6 までは、
OK ということではないのですか。
なぜ、「入力値10.01→判定OK 又入力値10.06→判定NG」なのでしょうか。

いちおう、10.4 〜 10.6 までなら OK と仮定して、

クエリの演算フィールドなら、

判定: IIf(Abs([フィールド名]-10.5)<=0.1,"OK","NG"))

フォーム/レポートの演算コントロールなら、

コントロールソース =IIf(Abs([フィールド名]-10.5)<=0.5,"OK","NG"))

で希望の表示は得られます。
・ツリー全体表示

【9799】Re:フィールドに入力した値を判定したい
発言  Nao  - 07/9/1(土) 15:08 -

引用なし
パスワード
   入力のチェックは「更新前処理」で行いますが、
基準値は「どの様な形式」で「どこに」セットされて
いるのでしょうか。
・ツリー全体表示

【9798】Re:AccessからSQLサーバーへの登録について
発言  なんとなく  - 07/9/1(土) 14:39 -

引用なし
パスワード
   ▼けいこ さん:

>  【登録処理】 

この部分に問題があるような気がします。
・ツリー全体表示

【9797】フィールドに入力した値を判定したい
質問  浩二  - 07/9/1(土) 11:50 -

引用なし
パスワード
   フィールドに入力した値をある基準値に照らして判定し別のフィールドにOK/NGを表示したいのですが?
基準値10.5±0.1に対し入力値10.01→判定OK 又入力値10.06→判定NG と言うように
宜しくお願い致します。
・ツリー全体表示

【9796】AccessからSQLサーバーへの登録について
質問  けいこ  - 07/8/30(木) 14:20 -

引用なし
パスワード
   VBAでAccessのとあるTBLより
SQLサーバー側へのデータ移行処理で
分かりません

データは登録されているのですが、
「Set Cmd = Nothing」処理をすると
登録データが消えてしまいます。

お力をお貸しください
宜しくお願いします。

構文内容は==============================
  Dim myDB      As New ADODB.Connection
  Dim Cmd       As New ADODB.Command

  '* -------------------------------------------------------
  '* コネクション設定
  Set myDB = CurrentProject.Connection
  Cmd.ActiveConnection = myDB


  myDB.BeginTrans
  【登録処理】 
  myDB.CommitTrans

  Set myDB = Nothing
  Set Cmd = Nothing
===================================
・ツリー全体表示

【9795】Re:ラジオボタンのオンオフについて
質問  といとい  - 07/8/30(木) 13:36 -

引用なし
パスワード
   ▼Gin_II さん:
説明不足ですみませんでした。全くの初心者なものですから・・・・

>オプショングループでオプションボタンを使っている場合のことでしょうか?
>
>チェックボックスを使えばいいのでは?

エクセルでオプションボタンを使用しています。
現在アンケート形式の択一の質問を作成中で、「項目に該当なし」の場合はチェックを空欄にしたいと考えています。ですがラジオボタンのそのままの設定ですと一度どれかをクリックしてしまうとチェックが必ず一つは残ってしまいます。

チェックボックスだと択一選択感が薄れてしまうので出来る限りラジオボタンにしたいと考えています。

また

if ボタン名.value = true then
  ボタン名.value = False

のようにソースに組み込めば出来るかと思ったんですが出来ませんでした・・・

もしやり方がございましたらどうぞよろしくお願いいたします。
・ツリー全体表示

173 / 500 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
1083231
(SS)C-BOARD v3.8 is Free