Access VBA質問箱 IV

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

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


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

【4041】同じIDのデータの最大値のみを抽出する
質問  popo  - 04/12/17(金) 17:10 -

引用なし
パスワード
   お世話になってます。

以下のような場合について、解決法をご存知の方、教えてください。

テーブルAは植物標本の植物名を入力したものです。

標本IDは、標本のIDナンバー、
種名IDは、種名データをつけた時点で発生するIDナンバーです(植物名のIDナンバーではありません)。
標本IDと種名IDの複数種キーとなります。

以下のようなテーブルになります。

テーブルA
標本ID 種名ID 植物名
1234  0001   A
1234  0002   B
1234  0003   C
1235  0001   A
1235  0002   D
1236  0001   A

このとき、同じ標本IDのうち、種名IDが最大のものを抽出したいのです。
つまり、上のテーブルからだと、、、、

標本ID 種名ID 植物名
1234  0003   C
1235  0002   D
1236  0001   A

と言った具合です。

同じIDのデータの最大値のみをクエリで出せる、、、と思っていたのですが、いかんせん、分かりません…。

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

【4040】テキストボックスからサブフォームに追加
質問  アツキ E-MAIL  - 04/12/17(金) 11:42 -

引用なし
パスワード
   VBA初心者です。

現在フォームにサブフォームとしてテーブルを追加しています。

テキストボックスに入力された値をテーブルに追加(INSERT文を使う)したいのですが、うまくいきません。

DAOを使っているのですが

コード上の
1:Dim strSql As String
2:  Dim temp As String
3:  Dim dbs As DAO.Database
4:    
5:  Form_フォーム1.会社.SetFocus
6:  temp = Form_フォーム1.会社.Text
7:  db1.Form_dbo_ma_receive1のサブフォーム1.cd_kaisha.SetFocus
8:  strSql = "INSERT INTO db1.Form_dbo_ma_receive1のサブフォーム1 (cd_kaisha) VALUES ('" & temp & "' )"
9:  Set dbs = CurrentDb
10:  dbs.Execute strSql
11:  dbs.Close

10行目のところで「テーブルdb1.Form_dbo_ma_receive1のサブフォーム1が見つかりません」というエラーメッセージが出てしまいます。

確かにその名前のテーブルはあるので原因がさっぱりわかりません。
どうかご教授お願いします。
・ツリー全体表示

【4039】Re:マージ処理
回答  hatena  - 04/12/17(金) 9:17 -

引用なし
パスワード
   >の場合、
>【結合結果1】
>社員番号  名前    住所
>1     山田太郎
>2     佐藤花子
>3     吉田剛史  
>3           東京都 
>4           岡山県
>5           埼玉県

ここまで出来たのなら、集計クエリにして、
社員番号でグループ化すればいいですね。
名前 と 住所 は、集計を 先頭 にします。

一つのSQLで記述するなら、

SELECT T.社員番号, First(T.名前) AS 名前, First(T.住所) AS 住所
FROM
(SELECT 社員番号, 名前, NULL AS 住所 FROM Aテーブル
 UNION ALL
 SELECT 社員番号, NULL, 住所 FROM Bテーブル)
GROUP BY T.社員番号;
・ツリー全体表示

【4038】Re:マージ処理
質問  はじめちゃん  - 04/12/17(金) 6:46 -

引用なし
パスワード
   データを訂正します。
教えていただいたUNIONだと、

【Aテーブル】
社員番号  名前
1     山田太郎
2     佐藤花子
3     吉田剛史

【Bテーブル】
社員番号  住所
3     東京都
4     岡山県
5     埼玉県

の場合、
【結合結果1】
社員番号  名前    住所
1     山田太郎
2     佐藤花子
3     吉田剛史  
3           東京都 
4           岡山県
5           埼玉県

となると思うのですが...

【結合結果2】
社員番号  名前    住所
1     山田太郎
2     佐藤花子
3     吉田剛史  東京都
4           岡山県
5           埼玉県

のように3の部分を同じ主キーはマージするように
にしたいというのが質問の趣旨なのですが
どういう方法を用いれば可能でしょうか?
何度も質問してごめんなさい。><
・ツリー全体表示

【4037】Re:マージ処理
回答  Gin_II  - 04/12/16(木) 9:28 -

引用なし
パスワード
   >通常、2テーブル間の結合をクエリー→デザインビュー→結合のプロパティ
>でやろうとすると3通りの結合方法しか出てきません。

UNION クエリは、デザインビューでは作れません。
「表示」→「SQLビュー」で、作成してください。


SELECT 社員番号, 名前, NULL AS 住所 FROM Aテーブル
UNION ALL
SELECT 社員番号, NULL, 住所 FROM Bテーブル

で大丈夫だと思います。
・ツリー全体表示

【4036】Re:マージ処理
質問  はじめちゃん  - 04/12/16(木) 6:29 -

引用なし
パスワード
   ▼Gin_II さん:
えーと、もう一度質問内容を変えていいます。
通常、2テーブル間の結合をクエリー→デザインビュー→結合のプロパティ
でやろうとすると3通りの結合方法しか出てきません。
【Aテーブル】
社員番号  名前
1     山田太郎
2     佐藤花子
3     吉田剛史

【Bテーブル】
社員番号  住所
4     東京都
5     岡山県
6     埼玉県

の場合、
【結合結果】
社員番号  名前   住所
1     山田太郎
2     佐藤花子
3     吉田剛史
4          東京都
5          岡山県
6          埼玉県

となるようにするにはどうすればいいのでしょうか?
・ツリー全体表示

【4035】Re:マージ処理
回答  Gin_II  - 04/12/16(木) 0:17 -

引用なし
パスワード
   >主キーは社員番号なのですが、Aテーブルは経理課、Bテーブルは人事課、Cテーブルは
>総務課で、1つのテーブルにマージして全社員テーブルを作りたいのです。

ユニオンクエリかな。

SELECT "経理課" AS 所属, 社員番号, 氏名 FROM Aテーブル
UNION
SELECT "人事課", 社員番号, 氏名 FROM Bテーブル
UNION
SELECT "総務課", 社員番号, 氏名 FROM Cテーブル

このようなクエリを元に、追加クエリを作成すれば大丈夫だと思います。
・ツリー全体表示

【4034】マージ処理
質問  はじめちゃん  - 04/12/16(木) 0:07 -

引用なし
パスワード
   ACCESSで3つのテーブルを主キーでマージして1つのテーブルにしたいのですが
VBAマクロでどのように書けばいいでしょうか?

主キーは社員番号なのですが、Aテーブルは経理課、Bテーブルは人事課、Cテーブルは
総務課で、1つのテーブルにマージして全社員テーブルを作りたいのです。
・ツリー全体表示

【4033】Re:フォームやレポートのテキストボックスの数字の表示方...
お礼  masa  - 04/12/15(水) 10:32 -

引用なし
パスワード
   できました!

こんな簡単な設定で出来るとは・・・・
ありがとうございました。
・ツリー全体表示

【4032】Re:MSysAccessObjectsの読み取り権限
発言  クロ  - 04/12/15(水) 9:55 -

引用なし
パスワード
   ということはオペレータが基本データのあるmdbを弄っていると
いうことでしょうか?
危ないので、操作側とマスタ/データ基部側は分離しておいたが
よいかと思います。
・ツリー全体表示

【4031】Re:MSysAccessObjectsの読み取り権限
お礼  Smith E-MAIL  - 04/12/15(水) 9:51 -

引用なし
パスワード
   ▼クロ さん:
>http://www.ruriplus.com/msaccess/bbscbrwb.asp?Root=13228
>が参考になるかも?
>ただ、「MSysAccessObjectsの読み取り権限」については復旧したレスを
>みたことないですね...

これほど難解なものだったとは怖いものです。皆さん温かいご協力
ありがとうございます。
実は、MDBが毎日バックアップを取っているサーバー上にありまして、
運良くリストアすることができました。
リストアできてからも、しばらくレスの様子を見ていました。すいません。
毎日更新している顧客名簿だったので危なかった。以前はローカルに置いていて
バックアップしてなかったのですが、夏ごろに会社がセキュリティを強化して
サーバーに置き始めたのです。
・ツリー全体表示

【4030】Re:MSysAccessObjectsの読み取り権限
回答  Hanahana  - 04/12/14(火) 17:59 -

引用なし
パスワード
   勿論、最適化、修復は実行していますよね?

後は他のMDBファイルからリンクが可能かどうか試して見る。

他のMDBファイルからレコードセットで開いてみる。

エクセルからMDBファイルにデータ、外部データの取り込みを実行してみる。

以上を試して見て駄目ならば諦めた方が良いかも知れません。

まさかセキュリティのユーザー/グループで所有者とか管理者の変更とか

或いはセキュリティーウィザードとかやってたりして。
・ツリー全体表示

【4029】Re:MSysAccessObjectsの読み取り権限
回答  クロ  - 04/12/14(火) 17:42 -

引用なし
パスワード
   http://www.ruriplus.com/msaccess/bbscbrwb.asp?Root=13228
が参考になるかも?
ただ、「MSysAccessObjectsの読み取り権限」については復旧したレスを
みたことないですね...
・ツリー全体表示

【4028】Re:MSysAccessObjectsの読み取り権限
回答  Smith E-MAIL  - 04/12/14(火) 17:24 -

引用なし
パスワード
   ▼Hanahana さん:
>空のMDBファイルを作りそちらに全てをインポートしたら如何でしょうか?

インポートもできないのです。同じメッセージがでます。
・ツリー全体表示

【4027】Re:MSysAccessObjectsの読み取り権限
回答  Hanahana  - 04/12/14(火) 16:50 -

引用なし
パスワード
   空のMDBファイルを作りそちらに全てをインポートしたら如何でしょうか?
・ツリー全体表示

【4026】Re:フォームやレポートのテキストボックスの数字の表示方...
回答  Hanahana  - 04/12/14(火) 16:48 -

引用なし
パスワード
   テキストボックスの書式に 0.0##### とします。

1    → 1.0
1.2   → 1.2
1.23   → 1.23
1.234  → 1.234
1.2345  → 1.2345
1.23456 → 1.23456
・ツリー全体表示

【4025】Re:フォームやレポートのテキストボックスの数字の表示方...
回答  MJ  - 04/12/14(火) 11:59 -

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

以下のような感じにされては如何でしょう。
フォームの場合は、更新後処理イベント、
レポートの場合は、フォーマット時イベントになりますでしょうか。

Dim intDigit As Integer

If InStr([コントロール名], ".") = 0 Then
  intDigit = 0
Else
  intDigit = Len([コントロール名]) - InStr([コントロール名], ".")
End If
  
If intDigit < 2 Then
  [コントロール名] = Format([コントロール名], "0.0")
Else
  [コントロール名] = Format([コントロール名], "0." & String(intDigit, "0"))
End If
・ツリー全体表示

【4024】フォームやレポートのテキストボックスの数字の表示方法で
質問  masa  - 04/12/14(火) 11:01 -

引用なし
パスワード
   フォームやレポートのテキストボックスの数字の表示方法で

1   →1.0  ○ ←少数点以下の数字がゼロの時だけゼロを一つ表示させたい。
1   →1.00 ×

1.27 →1.27 ○ ←少数点以下の数字がある時はそのまま表示させたい。
1.27 →1.270 ×

との用に少数点以下が無いときだけ ".0" の用にゼロを一つ表示させたいのですが
可能でしょうか?
よろしくお願いします。
・ツリー全体表示

【4023】MSysAccessObjectsの読み取り権限
質問  Smith E-MAIL  - 04/12/14(火) 10:54 -

引用なし
パスワード
   困っています。
素人のAccess使用者が誤っていろいろ操作してしまったために、突然
「MSysAccessObjectsの読み取り権限がないので、レコードを読み取ることができません。」
と出てしまって、ファイルが開かなくなってしまいました。
いろいろ探してみたのですが、解決法がみつからないので教えてください。
・ツリー全体表示

【4022】Re:リストボックスについて
回答  Gin_II  - 04/12/14(火) 8:28 -

引用なし
パスワード
   >一つのリストボックスに二つの情報が入っていて、それを別のフォームに出力する
>ということが載っていなかったので・・・。

可能ですよ。
そのリストボックスの連結列を使ってやれば、複数列あろうが1列だろうが
同じだと思いますけど。
・ツリー全体表示

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