Access VBA質問箱 IV

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

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


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

【8637】Re:クエリ時のエラーについて
回答  えくせるん  - 06/9/27(水) 22:37 -

引用なし
パスワード
   分割して更新するとうまくいくのでしょうか?
特定のレコードが悪さしている可能性は?

関係なさそうですが
DAO使用時でロックできる最大件数が少なかったので
拡張した記憶があります。

DAO.DBEngine.SetOption dbMaxLocksPerFile, g_Max_Locks
・ツリー全体表示

【8636】クエリ時のエラーについて
質問  SK  - 06/9/27(水) 18:45 -

引用なし
パスワード
   更新クエリを実行した際に、「レコードが大きすぎます」というエラーメッセージが出ます。

レコード数は72620レコード。
Accessのサイズは82488KB。

何かよい対処方はないでしょうか?

非常に困っています。
助けてください。
・ツリー全体表示

【8635】Re:カタカナをひらがなに
お礼  あおぎん  - 06/9/27(水) 12:13 -

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

お返事ありがとうございます。
丁寧な解説で、よ〜〜〜くわかりました!
フリガナが全角カタカナだと、32でもできるんですね〜〜。
36だとどっちでも対応できるので、36としてくださったんですね。


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

【8634】リレーションシップについて
質問  たんけん  - 06/9/27(水) 11:10 -

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

基本的な質問かもしれませんが、本に書いてあるようにしたつもりなのに結果が違うので質問させてください。

今Access2002で新しく仕組みを作ろうとしていて問題が発生しています。

バージョンは(10.6771.6811)SP3です。

クエリで2つのテーブルを選択し、2つのテーブル中にある共通の項目でリレーションを結び、左側にあるテーブルから右側にあるテーブルに矢印が付くようにしています。

このリレーションの結び方だと、左側のテーブルにある全ての項目と、右側のテーブルにあるリレーションで結んだ値が一致する項目が結果として出力されると思うのですが、左右両方のテーブルに値が無いと出力されないような状態になっています。
リレーションの矢印の向きを逆(右から左向き)にしてみても、矢印が無い状態にしてみても、出力結果は変わらず、両方に値が無いと出力されない状態です。

左側のテーブルの項目は全て出力され、右側のテーブルはリレーションで結んだ値が一致するものだけ出力されるようにするにはどのようにしたら良いのでしょうか。

基本的な事かもしれませんが、ご教授よろしくお願いします。
・ツリー全体表示

【8633】Re:カタカナをひらがなに
回答  小僧  - 06/9/27(水) 10:50 -

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

>36でできたのでまったく問題ないのですが、疑問に思ったので書いてみました。

そうですね。
もうちょっと詳しく説明するべきでしたね。すみませんでした。


今回は「カタカナ」⇒「ひらがな」という事でしたが、
カタカナには「半角カナ」「全角カナ」の2種類があります。

半角カナですと、全角カナへの変換の後に全角かなへの変換が必要になります。
モジュール内ですと下記の様な記述になります。

StrConv([フリガナ], vbWide + vbHiragana)


クエリ内では VBA の定数が使えないため、
vbWide は 4 に、vbHiragana は 32 に変更します。

StrConv([フリガナ], 4 + 32)


あとは計算させてあげると、前回提示させて頂いた

StrConv([フリガナ], 36)

という式になります。
・ツリー全体表示

【8632】Re:カタカナをひらがなに
お礼  あおぎん  - 06/9/27(水) 9:59 -

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

おはようございます。
さっそくのお返事ありがとうございました。
ご教示の方法でエラーもなく変換できました!
ありがとうございました。

なんとか自分でやろうとヘルプで検索などしたのですが、『変換する関数』や『置換』で検索してもうまく見つけることができませんでした。検索にもコツみたいなものがあるんでしょうね。

で、教えていただいた関数をヘルプで調べてみたところ、ひらがなに変える値は32だと記述してありました。小僧さんは36なのにこっちでもできるのかな・・と思いつつ32で試してみると、カタカナのままでした。

ううむ??

36でできたのでまったく問題ないのですが、疑問に思ったので書いてみました。


>過去ログを参照したのですが、
>あおぎん さんのAccessのバージョンは2000でしたよね?

すみません!
いらない手間をかけさせてしまいました。
以降書き漏らさないよう気をつけます。

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

【8631】Re:カタカナをひらがなに
回答  小僧  - 06/9/26(火) 22:03 -

引用なし
パスワード
   ▼あおぎん さん:
こんばんは。

>氏名のフリガナをカタカナで入力しているテーブルがあるのですが、
>これをひらがなに変換するような関数がありますでしょうか?

StrConv関数でできそうですね。

>できれば、クエリで置き換えをしたいと思っています。

UPDATE テーブル名 SET テーブル名.フリガナ = StrConv([フリガナ],36);


過去ログを参照したのですが、
あおぎん さんのAccessのバージョンは2000でしたよね?

恐らく大丈夫だと思われるのですが、Ac2000では
一部関数をクエリで直接使うとエラーが出るというバグが報告されております。

もしエラーが出てしまう場合はユーザ定義関数を作る必要があるかもしれませんね。
・ツリー全体表示

【8630】カタカナをひらがなに
質問  あおぎん  - 06/9/26(火) 16:47 -

引用なし
パスワード
   こんにちは。
いつもお世話になっています。

もしかして、ものすごく単純なことかもしれないのですが、どうしても方法がわからないので、ヒントだけでも教えてください。

氏名のフリガナをカタカナで入力しているテーブルがあるのですが、これをひらがなに変換するような関数がありますでしょうか?
できれば、クエリで置き換えをしたいと思っています。

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

【8629】Re:Accessから複数のxlsファイルの...
回答  Gin_II  - 06/9/26(火) 8:39 -

引用なし
パスワード
   >shell関数でエクセルファイルを開いて印刷して閉じて、

Shell ではなく、オートメーション機能を使います。
ファイル名の取得には、Dir 関数を使ってください。

オートメーションについては、過去ログ等で、CreateObject なんかを
キーワードに検索してみてください。
・ツリー全体表示

【8628】Accessから複数のxlsファイルの自動...
質問  かめ  - 06/9/25(月) 19:49 -

引用なし
パスワード
   あるフォルダにあるxlsファイルのすべてのsheetをAccessから自動印刷するのは可能でしょうか。

具体的には,フォルダfoにあるa.xlsのsheet1,sheet2,b.xlsのsheet1,sheet2,sheet3,c.xlsのsheet1とゆうように複数のxlsファイルをAccessのフォームのコマンドボタンを押すとすべて自動印刷するとゆうようなものです。
shell関数でエクセルファイルを開いて印刷して閉じて、次のエクセルファイルを開いて印刷して閉じてとゆうようにすればいいとおもうのですが初心者なのでよくわかりません。

よろしくお願いいたします。
・ツリー全体表示

【8627】Re:レポートの罫線を最後まで表示
回答  ツカ  - 06/9/25(月) 16:07 -

引用なし
パスワード
   レポートフッターの下に太線を配置しておいて、
コードに下記の2行を追加するとゆうやり方で解決しました。ありがとうございました。

> Private Sub レポートフッター_Format(Cancel As Integer, FormatCount As Integer)
>   '総行数がページ印字可能行数と同じ場合
>   If GyouCnt = AblGyou Then
>     '行数カウント数のクリア
>     GyouCnt = 0
>     '空白行を印字しない
>     Me.MoveLayout = False
>     Me.PrintSection = False
>   Else
>     '行数カウントを加える
>     GyouCnt = GyouCnt + 1
>     'ページ行数に満たない場合、空白行を印字
>     If GyouCnt < AblGyou Then
>       '次のレコードへ移動設定を無効とする
>       Me.NextRecord = False
>       '次の印刷位置への移動設定を有効とする
>       Me.MoveLayout = True
>       'セクション印刷の設定を有効とする
>       Me.PrintSection = True
      Me.太線.Visible = False
>     Else
>       '行数カウント数のクリア
>       GyouCnt = 0
       Me.太線.Visible = True
>     End If
>   End If
> End Sub
・ツリー全体表示

【8626】Re:テーブルリンクに関して
お礼  初心者A  - 06/9/25(月) 15:22 -

引用なし
パスワード
   助かりました。
・ツリー全体表示

【8625】Re:テーブルリンクに関して
回答  Gin_II  - 06/9/25(月) 12:30 -

引用なし
パスワード
   >この下の参照設定とはどこのことを指すのか
>お手数ですが教えて下さい。

Visual Basic Editor で、「ツール」→「参照設定」のことです。

ヘルプだけではなく、過去ログやインターネット上を検索すると、すぐに
わかると思いますけど ^^;
・ツリー全体表示

【8624】Re:テーブルリンクに関して
質問  初心者A  - 06/9/25(月) 11:49 -

引用なし
パスワード
   ご指摘ありがとうございました。
ACCESS2000 WIN-XP
です、この下の参照設定とはどこのことを指すのか
お手数ですが教えて下さい。
ヘルプを見ていますが、よくわからないので教えて
下さい。


「参照設定」で[Microsoft DAO 3.* Object Library] にチェックは
入っていますか?

それと別件ですが、
コンボボックスの「入力チェック」は「はい」にしてください。

rst!適用 = CStr(NewData)
はNewDataはStringになってるので
rst!適用 = NewData
でいいかと...

終わりに
rst.Close
dbs.Close
も入れた方が...
・ツリー全体表示

【8623】Re:テーブルリンクに関して
回答  小僧  - 06/9/23(土) 2:42 -

引用なし
パスワード
   ▼初心者A さん:
こんばんは。

VBA のコードは OS や Access のバージョンによって左右されますので
ご質問の際には現在の環境を明記しましょうね。

> Dim db As Databaseでユーザー定義型は定義されていませんと
> エラーが出ます

という事で Access2000 もしくは Access2002 をお使いでしょうか。

下記過去ログが参考になりませんでしょうか。

[#4002] NotInListがうまくいきません
・ツリー全体表示

【8622】テーブルリンクに関して
質問  初心者A  - 06/9/22(金) 17:39 -

引用なし
パスワード
   テーブルリンクに関して教えて下さい。
開発を自分のパソコン、完成モジュールをサーバ上において
います。
さらに、モジュールとテーブルを分けて管理しています。
このときに、テーブルのリンクを毎回手動で処理していますが

できれば自動でできないものか検索していたところ下記の内容で
公開があったのですが、

Dim db As Databaseでユーザー定義型は定義されていませんと
エラーが出ます。

この解消のやり方を教えて下さい。

宜しくお願いします。


Private Sub リンクチェツク_Click()

On Error GoTo Err_リンクチェツク

If MsgBox("リンクテーブルを更新します。よろしいですか?", vbYesNo + vbExclamation + vbDefaultButton2, "更新") = vbYes Then

  Dim db As Database, tdfLinked As TableDef
  Dim TableName As String, ErrName As String
  Set db = CurrentDb
  ErrName = ""

  TableName = "table1" 'テーブル名を指定する
  Set tdfLinked = db.TableDefs(TableName)
  tdfLinked.Connect = ";DATABASE=" & (Left(CurrentDb.Name, Len(CurrentDb.Name) - Len("C:\db1.mdb")) & "C:\db2.mdb")
  tdfLinked.RefreshLink
  Set db = Nothing

  If Len(ErrName) > 0 Then
    MsgBox ErrName & "のテーブルは更新できませんでした。"
  Else
    MsgBox "終了しました。", , "確認"
  End If
End If

Exit Sub

Err_リンクチェツク:
  ErrName = ErrName & " " & TableName
  Resume Next

End Sub
・ツリー全体表示

【8621】レポートの罫線を最後まで表示
質問  ツカ  - 06/9/22(金) 16:27 -

引用なし
パスワード
   お世話になります。色々試したのですが行き詰ってしまったので ご教授お願い致します。

レポートでデータのない空欄の部分にも罫線を最後まで表示するようにしているのですが↓(引用しました)

Option Compare Database
Option Explicit
'ページ印字可能行数の設定
Const AblGyou = 31
'行数カウント変数
Dim GyouCnt As Integer

Private Sub ページフッター_Format(Cancel As Integer, FormatCount As Integer)
'行数カウント数のクリア
GyouCnt = 0
End Sub


Private Sub レポートフッター_Format(Cancel As Integer, FormatCount As Integer)
'総行数がページ印字可能行数と同じ場合
If GyouCnt = AblGyou Then
'行数カウント数のクリア
GyouCnt = 0
'空白行を印字しない
Me.MoveLayout = False
Me.PrintSection = False
Else
'行数カウントを加える
GyouCnt = GyouCnt + 1
'ページ行数に満たない場合、空白行を印字
If GyouCnt < AblGyou Then
'次のレコードへ移動設定を無効とする
Me.NextRecord = False
'次の印刷位置への移動設定を有効とする
Me.MoveLayout = True
'セクション印刷の設定を有効とする
Me.PrintSection = True
Else
'行数カウント数のクリア
GyouCnt = 0
End If
End If
End Sub

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
'行数カウントを加える
GyouCnt = GyouCnt + 1
End Sub


直線を引いたりして一番最後の行の下の線だけ太字にしたいのですがそれは可能でしょうか?
すみませんが、宜しくお願いします。
・ツリー全体表示

【8620】Re:データベース修復&最適化
お礼  迷える子羊  - 06/9/21(木) 15:12 -

引用なし
パスワード
   ▼小僧 さん:
VBスクリプトを夜間バッチに使用することが今まで無かったので、
えっ!!と思ったのですが、やって見てびっくりアクセス起動無しで
出来てしまったので処理も早いし、大変助かりました。
ありがとうございました。
・ツリー全体表示

【8619】Re:データベース修復&最適化
発言  小僧  - 06/9/21(木) 13:53 -

引用なし
パスワード
   ▼迷える子羊 さん:
こんにちは。

>夜間のバッチ処理でデータベース修復&最適化を以下の方法を
>考えているのですが、問題が・・・

まったく違った方向からなのですが、

Const strOld = "c:\test.mdb"
Const strNew = "c:\testnew.mdb"
CreateObject("DAO.DBEngine.36").CompactDatabase strOld, strNew
CreateObject("Scripting.FileSystemObject").DeleteFile strOld
CreateObject("Scripting.FileSystemObject").MoveFile strNew, strOld

上記コードをメモ帳にでも貼り付けて、拡張子を「.VBS」にして保存。
後はWindowsのタスクスケジューラに仕込んでおけば
自動で最適化を行ってくれると思います。

DAO.DBEngine.36 の所はお使いのAccess のバージョンに依存します。
またスクリプトファイルを実行するので、
ウィルス対策ソフトに邪魔をさせる可能性も考えられますね。
・ツリー全体表示

【8618】データベース修復&最適化
質問  迷える子羊  - 06/9/21(木) 12:15 -

引用なし
パスワード
   夜間のバッチ処理でデータベース修復&最適化を以下の方法を
考えているのですが、問題が・・・
1.「AUTOEXEC」という名前のマクロを作成し、
 データベース修復&最適化を実行させている。
2.上記1.のマクロが格納されているmdbファイルを
 MSDOSのバッチファイルから、実行する。

上記の方法を取ると、1.のマクロが実行されると
データベース修復&最適化したいファイルを指定するための
ダイアログボックスが表示され、それを指定しないと、
次の処理に進みません。
夜間のバッチ処理なので、データベース修復&最適化の対象は
固定のファイル名にして、ダイアログも表示されること無く
連続して処理を継続していくようにしたいのですが、
可能なのでしょうか?
ご教授の程よろしくお願い致します。
・ツリー全体表示

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