Access VBA質問箱 IV

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

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


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

【7001】Re:フォームから次のフォームに行くには
発言  小僧  - 05/12/21(水) 13:31 -

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

>3.イベントのビルドで、コードビルドを選びました。

「更新前処理」「更新後処理」…とたくさん選ぶ所がありませんでしょうか。

クリックした際に動作させたいのでしたら「クリック時」の所で
コードビルダを起動させてみて下さい。


>Private Sub 店コード_BeforeUpdate(Cancel As Integer)
>↓
>Private Sub 店コード_Click()

となるはずです。


テキストボックスの値が確定しないと店コードは空のままです。(Null値)
一度フォーカスをテキストボックス以外に移して値を確定させてから
クリックを行ってみてください。
・ツリー全体表示

【7000】並べ替えについて
質問  keisuke  - 05/12/21(水) 13:16 -

引用なし
パスワード
   表形式のフォームを作って、並べ替えをしたいのですが、

Private Sub コマンド84_Click()
  Me.OrderBy = "氏名 DESC"
End Sub

とマクロを組んでも、動作しません。
どこかの設定を間違えているのでしょうか?
・ツリー全体表示

【6999】Re:フォームから次のフォームに行くには
質問  にしもり  - 05/12/21(水) 9:30 -

引用なし
パスワード
   こんにちは。

みようみまねでコードビルド(?)というのをやりました。
1.FORM01をデザインモードでひらきました。
2.店コードを右クリックしました。
3.イベントのビルドで、コードビルドを選びました。
4.下記のコードを書いて保存しました。
5.FROM01を通常のモードで開き、店コードをクリックしました。

ですが、FORM02がひらきますがなにも表示されません。
なにが足りないでしょうか?

Option Compare Database
Option Explicit
Private Sub 店コード_BeforeUpdate(Cancel As Integer)
 DoCmd.OpenForm "FORM02", , "店コード = '" & 店コード & "'"
End Sub
・ツリー全体表示

【6998】Re:SQL文で構文の誤り
お礼  みつ  - 05/12/19(月) 12:47 -

引用なし
パスワード
   ご指摘通り、NSERT の I が欠落していました。
失礼しました。
%を*に変更しました。
無事動きました。
大変お世話になりました。
・ツリー全体表示

【6997】Re:SQL文で構文の誤り
回答  小僧  - 05/12/19(月) 10:51 -

引用なし
パスワード
   ▼みつ さん、中西 健 さん:
おはようございます。

>エラーメッセージには”SQLステートメントが正しくありません・・・”と出ます。

>>xSQL10 = "NSERT INTO WT_個別原価管理表…

NSERT の I が欠落している為にそのメッセージが出ている、なんて事はありませんよね。

>ADOの場合は%がワイルドカードになると聞いて、
>他のモジュールで*を%に変えたらレコードセットが取得できました。

>>DoCmd.RunSQL xSQL10

どこにADOを使っているのでしょうか?


掲示板に書き込む手間を惜しんでいませんか?
ご自分の状況を少しでも知って頂きたいのでしたら最低でも
テーブル構造とデータ型くらいは提示すべきだと思いますよ。

クエリの中でFormat 関数を使っている箇所はテキスト型への変換がされますので
全て「'」で括る必要がでてきます。
また、営業所コード 売上修正損益 について、数値型である場合は「'」は不必要です。
・ツリー全体表示

【6996】Re:SQL文で構文の誤り
質問  みつ  - 05/12/19(月) 9:01 -

引用なし
パスワード
   ▼中西 健 さん:
> 設定にもよりますが、%ではなくて*です。
> 構文エラーは出なくなったんですね。


エラーメッセージには”SQLステートメントが正しくありません・・・”と出ます。

%を*に変えましたが状況は同じです。

ADOの場合は%がワイルドカードになると聞いて、他のモジュールで*を%に変えたらレコードセットが取得できました。

SQLサーバーにリンクしているDBを対象としているのですが、オプションのSQLサーバー互換構文(ANSI92)には特にチェックは入れていません。これは関係ないのでしょうか。
・ツリー全体表示

【6995】Re:フォームから次のフォームに行くには
お礼  にしもり  - 05/12/19(月) 8:56 -

引用なし
パスワード
   ▼小僧 さん:
ありがとうございます。
「連結」にするのですね。
確かにデザインでやると連結とか非連結とか出ますね。
ウィザードを使って作ったので、ある程度自動的にできてしまいました。
何がわからないのかがわからないので、もうすこし勉強してからまた質問させていただきます。
・ツリー全体表示

【6994】Re:タイムを表示するには
お礼  きむね  - 05/12/18(日) 1:04 -

引用なし
パスワード
   ありがとうございます。
日付/時刻型ではやはり秒単位までしか格納できないのですね。
・ツリー全体表示

【6993】Re:SQL文で構文の誤り
回答  中西 健  - 05/12/17(土) 23:27 -

引用なし
パスワード
    設定にもよりますが、%ではなくて*です。
 構文エラーは出なくなったんですね。
・ツリー全体表示

【6992】Re:エクスポートしたデータに...
お礼  フク  - 05/12/17(土) 14:49 -

引用なし
パスワード
   >小僧 さん、クロさん

ありがとうございます!早速やってみます。

1行目の日付ですが、相手先の仕様ということなので
省略できないのです...

このファイルを相手側ではどのようなシステムで処理
されるのかは聞けませんでした。

ありがとうございました。
・ツリー全体表示

【6991】Re:タイムを表示するには
回答  YU-TANG  - 05/12/16(金) 20:45 -

引用なし
パスワード
   ▼きむね さん:
> 利用法は、そのタイムを速いほうからソートするとか
> 期間を区切ってのベスト10に使うとか、年齢別のベスト10を
> 出すとか、そういうことを想定しています。
> タイム差も出したいので、計算できる形式で入力しておきたいのです。

Date 型には秒までしか格納できないので、以下のいずれかでは。

A) 秒までを格納する Date 型フィールドと、秒未満を格納する
  数値型フィールドに分ける。

B) ミリ秒で長整数型フィールドに格納する。

A は表示がラク(単純に文字列結合すればよい)な代わりに、
演算の際フィールドをまたがっての繰り上げ/繰り下げ処理を
実装する必要があります。

B は演算がラク(単なる数値演算)な代わりに、表示の際に
ミリ秒から適切な書式への整形処理を実装する必要があります。
整形の一例。
http://www005.upp.so-net.ne.jp/h-masuda/vb6/vb6appl/tokei04.html

一長一短なので、いずれかお好きな方で。

VB.NET の datetime 型は、最初からミリ秒対応のようですから、
乗り換えが可能であれば選択肢に入れても良いでしょうね。
・ツリー全体表示

【6990】Re:タイムを表示するには
回答  きむね  - 05/12/16(金) 18:29 -

引用なし
パスワード
  
>それは、そのデータを後でどのように利用したいのかによるので、
>一概には答えようがないです。
>
>表示だけなら、ぶっちゃけテキスト型にすればよい。

利用法は、そのタイムを速いほうからソートするとか
期間を区切ってのベスト10に使うとか、年齢別のベスト10を
出すとか、そういうことを想定しています。
タイム差も出したいので、計算できる形式で入力しておきたいのです。
・ツリー全体表示

【6989】Re:タイムを表示するには
発言  YU-TANG  - 05/12/16(金) 18:20 -

引用なし
パスワード
   > 陸上競技のデータベースを作ろうと思いますが、
> 例えば1万メートルのタイム 30分29秒28は
> テーブルのデータ型で何を指定して、どんな書式を
> 指定すればいいのでしょうか。

それは、そのデータを後でどのように利用したいのかによるので、
一概には答えようがないです。

表示だけなら、ぶっちゃけテキスト型にすればよい。
・ツリー全体表示

【6988】タイムを表示するには
質問  きむね  - 05/12/16(金) 16:47 -

引用なし
パスワード
   陸上競技のデータベースを作ろうと思いますが、
例えば1万メートルのタイム 30分29秒28は
テーブルのデータ型で何を指定して、どんな書式を
指定すればいいのでしょうか。
・ツリー全体表示

【6987】Re:SQL文で構文の誤り
質問  みつ  - 05/12/16(金) 14:53 -

引用なし
パスワード
   ACSESS2002のADOでした。
説明が足りませんでした。

Forms!F_Mainで参照しているところに関して
'%" & のついているところは参照NGでしたが、
'%" & のついていないところは参照OKでした。
'%" & のついているところの書き方をもう一度教えて頂けますか?


xSQL10 = "NSERT INTO WT_個別原価管理表 ( 工事番号, 受注金額, 工番コード, 見積番号, 顧客コード) " & _
     "SELECT T_工事台帳.工事番号, " & _
     "T_工事台帳.受注金額, " & _
     "T_工事台帳.工番コード, " & _
     "T_工事台帳.見積番号, " & _
     "T_工事台帳.顧客コード " & _
     "FROM T_工事台帳 LEFT JOIN T_営業所マスタ ON T_工事台帳.工番コード = T_営業所マスタ.工番コード " & _
     "WHERE (((T_工事台帳.営業所コード) Like '%" & [Forms]![F_Main]![営業所コード] & "%') " & _
     "AND ((T_工事台帳.売上修正損益)='0') " & _
     "AND ((T_営業所マスタ.工番管理者) Like '%" & [Forms]![F_Main]![工番管理者] & "%') " & _
     "AND ((Format([T_工事台帳]![処理工完日],'yyyy/mm/dd'))>=" & [Forms]![F_Main]![A] & " " & _
     "And (Format([T_工事台帳]![処理工完日],'yyyy/mm/dd'))<=" & [Forms]![F_Main]![B] & ") " & _
     "AND ((Format([T_工事台帳]![受注日],'yyyy/mm/dd'))<=" & [Forms]![F_Main]![B] & ")) " & _
     "OR (((T_工事台帳.営業所コード) Like '%" & [Forms]![F_Main]![営業所コード] & "%') " & _
     "AND ((T_工事台帳.売上修正損益)='0') " & _
     "AND ((T_営業所マスタ.工番管理者) Like '%" & [Forms]![F_Main]![工番管理者] & "%') " & _
     "AND ((Format([T_工事台帳]![処理工完日],'yyyy/mm/dd'))='') " & _
     "AND ((Format([T_工事台帳]![受注日],'yyyy/mm/dd'))<=" & [Forms]![F_Main]![B] & ")) " & _
     "OR (((T_工事台帳.営業所コード) Like '%" & [Forms]![F_Main]![営業所コード] & "%') " & _
     "AND ((T_工事台帳.売上修正損益)='0') " & _
     "AND ((T_営業所マスタ.工番管理者) Like '%" & [Forms]![F_Main]![工番管理者] & "%') " & _
     "AND ((Format([T_工事台帳]![処理工完日],'yyyy/mm/dd'))>" & [Forms]![F_Main]![B] & ") " & _
     "AND ((Format([T_工事台帳]![受注日],'yyyy/mm/dd'))<=" & [Forms]![F_Main]![B] & "));"

DoCmd.RunSQL xSQL10
・ツリー全体表示

【6986】Re:乱数をレコードで使用
回答  小僧  - 05/12/16(金) 10:47 -

引用なし
パスワード
   ▼ナオキ さん:
こんにちは。

フォームの説明がご提示されておりませんが、
コードを見る限り、連結フォームで処理されているのでしょうか。

現在フォームのレコードソースが直接テーブルを参照するようになっているのでしたら
レコードソースを

SELECT テーブル名.* FROM テーブル名 ORDER BY RndSort([ID]);

(IDのところは任意のフィールド名を入れて下さい。)

のようにして、標準モジュールに

Function RndSort(Dummy As Variant)
  Randomize
  RndSort = Rnd()
End Function

のように記述されてみて下さい。
・ツリー全体表示

【6985】Re:フォームから次のフォームに行くには
発言  小僧  - 05/12/16(金) 9:45 -

引用なし
パスワード
   ▼にしもり さん:
おはようございます。

>いまFORM01の店コードをクリックすると、

テキストボックスをマウスで選択する度に別フォームが上がってしまうので、
ダブルクリックのイベントの方が良いかもしれませんね。


>FORM02が開いて、FORM01にはない詳細(住所、電話など)がでるようにしたいのです。

現在のテーブル構成がご提示されていないので何ともいえないのですが

・FORM01 を帳票フォームで作成(連結フォーム)
・FORM02 を単票フォームで作成(連結フォーム)
・FORM01 にあるテキストボックス「店コード」のダブルクリック時のイベントに

 DoCmd.OpenForm "FORM02", , "店コード = '" & 店コード & "'"

 のように、WhereCondition を指定してフォームを開く

というような動作で実現できると思われます。
・ツリー全体表示

【6984】Re:コンボボックスのスペースキー操作。
お礼  まのえ  - 05/12/15(木) 17:08 -

引用なし
パスワード
   中西 健 さん
ご回答いただきましてありがとうございます。
そうですか・・・。
もう少し調べてみます。
ありがとうございました。
・ツリー全体表示

【6983】乱数をレコードで使用
質問  ナオキ  - 05/12/15(木) 16:31 -

引用なし
パスワード
   Randomizeを使用すればいいと分かっているのですが、どうやって使用したらいいのかわかりません。
Private Sub コマンド17_Click()
 If Me!解答選択 = Me!解答D Then
   tensu = tensu + 1
Else
    mis = mis + 1
 End If
If Me.NewRecord = False Then
  DoCmd.GoToRecord , , acNext
End If
  点数.Value = tensu
  ミス.Value = mis
  goukei = mis + tensu
  合計.Value = goukei

If goukei = 5 Then
    MsgBox "あなたのこれまでの点数は" & tensu & "です"
  Select Case tensu
    Case Is < 2
    MsgBox "まだまだですね。修行がたりません!!"
    Case Is < 5
    MsgBox "あ〜、、、知ったか程度ですね!"
    Case Else
    MsgBox "おぉ!!やるやん自分!認めちゃる!!"
  End Select
 DoCmd.GoToRecord , , acFirst
 点数.Value = 0
 ミス.Value = 0
 合計.Value = 0
 tensu = 0
 mis = 0
 goukei = 0
End If
'点数.Value = tensu
'ミス.Value = mis
'goukei = mis + tensu
'合計.Value = goukei
  End Sub
と、今やています。
とりあえず全レコード数 10 でクイズをしています。三択式のクイズです。
5問といたら評価がでるという仕組みです。今のところ、レコードの順でしか問題がでないのでこれを乱数を使用してレコードをランダムに出題したいと考えています。分かる方いらっしゃいましたら、アドバイスお願いします。
・ツリー全体表示

【6982】Re:エクスポートしたデータに...
発言  クロ  - 05/12/15(木) 15:45 -

引用なし
パスワード
   ワタシも小僧さんと同じように思います。
後でCSVファイルを利用するのであれば、使いづらくなりませんか?
※仕様なら仕方ないけど…


CSVファイル名に日付を入れたものにしてみるとか?
例) 20051214.csv
・ツリー全体表示

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