Access VBA質問箱 IV

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

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


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

【6271】Re:質問とは関係ない話だが(ちょっとね)
発言  たん  - 05/9/13(火) 14:03 -

引用なし
パスワード
   パッセンさんが質問しているのに、マイケルさんがお礼言うの?

何かおかしいとは思いませんか?

掲示板は匿名で投稿できるので、質問毎に名前変えるのも個人の
勝手かもしれませんが、せめて、その質問の間だけでも、
名前は統一すべきかと。

# とはいえ、私はコロコロ名前変える人間ははっきり言ってキライですが。

http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=6131;id=access
・ツリー全体表示

【6270】Re:リストボックスでデータを選択
お礼  ジュン  - 05/9/13(火) 11:32 -

引用なし
パスワード
   小僧さん

上手くいきました。 ありがとう御座いました。
・ツリー全体表示

【6269】ありがとうございました。
お礼  マイケル  - 05/9/13(火) 11:22 -

引用なし
パスワード
   小僧 さん、ありがとうございました。
大変参考になりました。
・ツリー全体表示

【6268】Re:JOIN操作の構文エラー
お礼  チリ子  - 05/9/13(火) 9:53 -

引用なし
パスワード
   ▼たん さん:
>とりあえず、MJMさんの構文と自分の構文を比べ、何処が間違っているのかを
>確認し、その後、きちんとヘルプ等で記述方法を確認しましょう

MJMさん・たんさん返信ありがとうございます。
INSERT INTOの使い方が分かりました。ありがとうございました。
・ツリー全体表示

【6267】Re:リストボックスでデータを選択
回答  小僧  - 05/9/13(火) 9:46 -

引用なし
パスワード
   ▼ジュン さん:
おはようございます。

>ダブルクリックでデータ選択は上手くいくのですが

という事で以下が参考になりますでしょうか。

Private Sub 入庫データ一覧_KeyDown(KeyCode As Integer, Shift As Integer)
  If KeyCode = 13 Then
    MsgBox "Enter"
  End If
End Sub
・ツリー全体表示

【6266】Re:2つのパソコンで
発言  小僧  - 05/9/13(火) 9:38 -

引用なし
パスワード
   ▼バッセン さん:
おはようございます。

>この場合、3つのmdbを使うってことでしょうか。

はい。
親 mdb 1つと、PC の台数の数だけ 子 mdb を用意する事になりますね。


>また、「データベースの共有について」の書籍等が出ているのを
>ご存知であるようなら教えていただければ幸いです。
>宜しくお願い致します。

当方が参考書といったものを全く使わない為に
書籍等に関しては知識がありません。申し訳ないです。

複数人で使う Web型データベースとなると、
Access だけでなく SQLServer や MSDE といったものと
連動させるのが主流になっています。

こちらは Access の最大の特長(だと思っています)である
「お手軽さ」が失われてしまい、技術力が必要となるようです。


A さんが領収書の新しいデータを投入

ほぼ同時に B さんが 領収書を発行

B さんの発行した領収書に A さんの投入したデータが反映されていない

A さん:「ごめん、今データ入れたからもう一度発行しなおして〜」


という事が許されるのであれば、
工夫次第で複数台で使うことも可能だと思いますよ。
・ツリー全体表示

【6265】Re:2つのパソコンで
質問  バッセン  - 05/9/12(月) 22:30 -

引用なし
パスワード
   小僧 さん。アドバイスありがとうございます。
やっぱりこのやり方はあまりよくないみたいですね。
紹介してもらった「データベースの共有について」を
じっくり研究してみたいとおもいます。

そこで、1つお聞きしたいのですが、

>A のパソコンにテーブルのみの サーバmdb を用意して、
>A と B のパソコンにそれぞれ フォームやレポートなどを持たせた
>クライアントmdb を配置します。

この場合、3つのmdbを使うってことでしょうか。
また、「データベースの共有について」の書籍等が出ているのを
ご存知であるようなら教えていただければ幸いです。
宜しくお願い致します。
・ツリー全体表示

【6264】Re:レコードセットからエクセル出力
回答  Gin_II  - 05/9/12(月) 19:53 -

引用なし
パスワード
   >レコードセットからデータをエクセル出力って出来るものなのでしょうか?

CopyFromRecordset メソッド
を、Excelのヘルプで確認してみてください。
・ツリー全体表示

【6263】レコードセットからエクセル出力
質問  HM  - 05/9/12(月) 17:58 -

引用なし
パスワード
   レコードセットからデータをエクセル出力って出来るものなのでしょうか?

DoCmd.TransferSpreadsheet を使った エクセルへの出力は行ったことあるのですが...
・ツリー全体表示

【6262】Re:JOIN操作の構文エラー
回答  たん  - 05/9/12(月) 17:35 -

引用なし
パスワード
   と、書いていたら、MJMさんから正解が。

とりあえず、MJMさんの構文と自分の構文を比べ、何処が間違っているのかを
確認し、その後、きちんとヘルプ等で記述方法を確認しましょう
・ツリー全体表示

【6261】Re:JOIN操作の構文エラー
回答  たん  - 05/9/12(月) 17:34 -

引用なし
パスワード
   >mySQL = "INSERT INTO" & "[" & CurrentTableName & "]" & "SELECT*" & "FROM(Forms![データ参照]![テキスト1]);"

まず、mysqlに格納されている内容をデバックして下さい。

あと、なんでもいいので、クエリエディタ上で追加クエリを作って、mySQLの内容と
比較してみて下さい。

少なくとも、空白がきちんと処理されていないのがはっきりします。

あと、テーブル名が変わる場合、

SELECT T1.FIELD1 FROM TABLE1 AS T1;

等のようにして、別名にしておいて、TABLE1の所を変更するようにして組みます。
そうしないと、テーブル名だけ変えても、フィールド名がテーブルを見つけられなく
なるので。
・ツリー全体表示

【6260】Re:JOIN操作の構文エラー
回答  MJM  - 05/9/12(月) 16:57 -

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

>mySQL = "INSERT INTO" & "[" & CurrentTableName & "]" & "SELECT*" & "FROM(Forms![データ参照]![テキスト1]);"

mySQL = "INSERT INTO " & CurrentTableName & " SELECT * FROM " & Forms![データ参照]![テキスト1]"

では、如何でしょうか。
・ツリー全体表示

【6259】JOIN操作の構文エラー
質問  チリ子  - 05/9/12(月) 16:37 -

引用なし
パスワード
   こんにちは。またまた、投稿させて頂きました。
テーブルが「DATA」と「TEST」の二つがあります。
DATAテーブルにTESTテーブルのデータを移動させようと思い、調べて以下のように書いてみました。TESTテーブルは名前がころころ変わってしまう為、テーブル名をテキストボックスに記入して、テーブルを指定しようと思いました。
しかし、「JOIN操作の構文エラーです。」というエラーがでてしまいます。
JOIN操作を調べても、いまいち分かりません。
ご教授宜しくお願致します。

Dim cnADO As ADODB.Connection
Dim mySQL As String     
Const CurrentTableName = "DATA"
Set cnADO = CurrentProject.Connection
mySQL = "INSERT INTO" & "[" & CurrentTableName & "]" & "SELECT*" & "FROM(Forms![データ参照]![テキスト1]);"
cnADO.Execute mySQL
Set cnADO = Nothing
・ツリー全体表示

【6258】Re:DAOでレコードセット内容を配列に
回答  小僧  - 05/9/12(月) 15:03 -

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

>色々探しているのですが、サンプルが見つからない。

ヘルプに載っていますよ。
Northwind データベースの解りづらい例ですが…。

Sub レコードセットを配列に()
'要参照 Microsoft DAO x.x Object Library
Dim TName As String
Dim RS As DAO.Recordset
Dim MyAry As Variant
Dim RC As Long

  TName = "テーブル名"
  
  Set RS = CurrentDb.OpenRecordset(TName, dbOpenSnapshot)
    RS.MoveLast
    RC = RS.RecordCount
    RS.MoveFirst
    
    MyAry = RS.GetRows(RC)
  RS.Close
  Set RS = Nothing
  
  Call 結果出力(MyAry)
  
End Sub

Sub 結果出力(Kekka As Variant)
Dim i As Long
Dim j As Long
Dim KLine As String
  
  For i = 0 To UBound(Kekka, 2)
    KLine = ""
      For j = 0 To UBound(Kekka, 1)
        KLine = KLine & " " & Kekka(j, i)
      Next
    Debug.Print KLine
  Next
End Sub

結果出力は検証用に付けてみました。
変数:MyAry に レコードセットの値が入っていると思います。
・ツリー全体表示

【6257】リストボックスでデータを選択
質問  ジュン  - 05/9/12(月) 14:51 -

引用なし
パスワード
   また 質問をさせていただきます。
リストボックスに表示しているデータをマウスの代わりに↑↓のキーでカーソルを移動して 選択するデータの位置でENTERキーを押下して選択する方法を教えてください。
ダブルクリックでデータ選択は上手くいくのですが、ENTERキーの場合には どのイベントでプロシージャを設定したら良いのかが分かりません。よろしくお願いします。
下のコードはリストボックスを表示する処理です。

Private Sub cmd全表示_Click()
  
  Dim Sql As String
  Dim RetEdit As Integer
  
'  -------------------------------------リストボックス表示(ALL)
  Sql = ""
  Sql = "SELECT Q_入庫抽出データ.入庫No., Q_入庫抽出データ.行, "
  Sql = Sql & "Q_入庫抽出データ.入庫日, Q_入庫抽出データ.得意先名, "
  Sql = Sql & "Q_入庫抽出データ.商品名称, Q_入庫抽出データ.ロットNo., "
  Sql = Sql & "Q_入庫抽出データ.入庫ケース数, Q_入庫抽出データ.入庫個数, "
  Sql = Sql & "Q_入庫抽出データ.入庫kg数, Q_入庫抽出データ.入荷先名 "
  Sql = Sql & "FROM Q_入庫抽出データ "
'  Sql = Sql & "WHERE Q_入庫抽出データ.入庫日=[Forms]![F_入庫データ入力]![入庫年月日];"
  Me!入庫データ一覧.RowSource = Sql
  Me!入庫データ一覧.Requery
  
  sw全表示 = True

  sw全表示 = False
  Me!入庫年月日 = ""
  Me!入庫データ一覧.SetFocus
    
End Sub
宜しくお願いします。
・ツリー全体表示

【6256】DAOでレコードセット内容を配列に
質問  HM  - 05/9/12(月) 14:12 -

引用なし
パスワード
   DAO接続で、レコードセット内容を配列に格納する方法って
GetRowsメソッドを使うのでしょうか?

色々探しているのですが、サンプルが見つからない。
ADO接続のサンプルは色々あるのですが...
・ツリー全体表示

【6255】Re:2つのパソコンで
発言  小僧  - 05/9/12(月) 14:03 -

引用なし
パスワード
   ▼バッセン さん:
こんにちは。

>Aと言うパソコンにデーターベースの本体があります。
>Bと言うパソコンはLANで繋がっていてAのパソコンにある
>データーベースを単純に開いて両方で発行できるようにしているのです。

こういう使い方をしていると mdb ファイル自体が壊れちゃいますよ^^;

通常、複数のPCから Access を操作したい場合
A のパソコンにテーブルのみの サーバmdb を用意して、
A と B のパソコンにそれぞれ フォームやレポートなどを持たせた
クライアントmdb を配置します。

方法は多々ありますが、クライアントmdb と サーバmdb との間で
データをやりとりさせながら共有させると破損「しにくく」なると思います。

MS情報:ネットワーク上での Access データベースの共有について

http://office.microsoft.com/ja-jp/assistance/HP052408601041.aspx
・ツリー全体表示

【6254】Re:フィールド名が存在したものだけフィー...
お礼  チリ子  - 05/9/12(月) 10:27 -

引用なし
パスワード
   ▼Gin_II さん:
>On Error Resume Next
>を使ってやればいいかと。

返信ありがとうございます。
With db.TableDefs…の前にOn Error Resume Nextを入れましたら、できました。
ありがとうございました。
・ツリー全体表示

【6253】2つのパソコンで
質問  バッセン  - 05/9/11(日) 21:36 -

引用なし
パスワード
   領収書を発行するデーターベースを作ってます。
Aと言うパソコンにデーターベースの本体があります。
Bと言うパソコンはLANで繋がっていてAのパソコンにあるデーターベースを単純に開いて両方で発行できるようにしているのです。
領収書は親子フォームでメインフォームからサムフォームにフォーカスが移動した時にサムフォームのレコードに多く使われる商品コードを(複数)を追加クエリで表示されるようにしてます。ただ表示された商品コードは必ず使うわけではないので発行ボタンを押すと合計が0円の場合は削除クエリでレコード削除してます。
ここで問題が出まして、Bのパソコンで同じようにフォームを開いていると時にAのパソコンで発行ボタンを押すとBのパソコン方で表示されているのが同時に削除されてしまいます。(逆も同じです)これを防ぐ方法はないものでしょうか。
宜しくお願い致します。
・ツリー全体表示

【6252】Re:検索について
お礼  yosi  - 05/9/11(日) 21:22 -

引用なし
パスワード
   ありがとうございました。
チョット考えすぎてました。
・ツリー全体表示

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