ACCESS総合相談所 その6

このエントリーをはてなブックマークに追加
939名無しさん@そうだ選挙にいこう:03/01/26 09:57
最近、ACCESS2000の動きが遅い。ローカルで動かすとふつうなんだけど、
ネットワーク上で、大きい(数百MB)MDBファイルとリンクしたものは極端に重くなっている。
今月のある日突然発生している。何か知っている人いたら教えて。
940YAMA:03/01/26 10:39
当方、一太郎を使っていますが、ワードで作成した文書、拡張子DOCを
開くと文字化けしてしまいます。
DOCをワードパッドでも読めるTEXTタイプに変換するソフトは無いでしょうか。
942名無しさん@そうだ選挙にいこう:03/01/26 11:36
>>939
まさかとは思うが、最適化はしてるだろうな?
なんてこったい
俺のプロバ、荒らしのせいでこの板にACCESS規制されちまったYO!
944939:03/01/26 20:12
>>942
最適化すると少しは早くなるけど、すぐに遅くなる。
以前は最適化は月1回するくらいだったけど、その日以来毎日数回やっている状態。
>>944
同じフォーマットのテーブル作って必要な分のデータだけインポートして抜いて最適化。
データ減らせば良いならこの手法か。
>>944
あとはハブの不調とか。可能ならサーバもリブート。(違うかな…)
一番重要なのは「今月のある日」に何があったか調べること。
947939:03/01/26 23:25
>>945
>>946
レスどうもありがと。サーバのリブートは試したけど無駄でした。
ハブやネットワークインターフェイスボード関係の不調かなと思ったけど、
ルーター超えているのが気になる。ハブの障害ってルータ超えることあるのかな?
ひょっとしたら、例のワームって関係ある?
94883 ぱんでものーと:03/01/26 23:36
SQL鯖2000がネットワークのどこかににいるなら
949939:03/01/26 23:50
>>948
SQL2000鯖とMSDEが複数。
ってことはやっぱワームか。
>>949
SQL2000ServerかMSDE2000が入ったPCから
直接インターネットに接続してるとやばい
ルータを経由したりしてると大丈夫
951918:03/01/27 10:15
>>918の質問をした者です。
皆様のご協力のおかげで、無事解決いたしました。
VBスレの下記部分に解決したソースを掲載しましたので(かなり汚い&力技ですが)
興味のある方はごらんください。
本当にありがとうございました。
http://pc3.2ch.net/test/read.cgi/tech/1041879465/778-779
952928:03/01/27 13:38
>>951
おお!付加情報を"8BPS"を元に取り除いたんだね。
解決して良かったっす。
953918:03/01/27 15:25
>>952
そのとおりです。928さんから教えてもらった情報をVBスレで報告したら
OLE情報を取り除くサンプルのレスをいただいて、それを参考にして
最終的にこの方法に至りました。
画像のビット数が違う場合は有効じゃないと思う、我ながら汚くて強引な
やり方なんですが、とりあえず今回のケースではデータ取り出しに成功したので、
結果オーライですw
いろいろありがとうございました m(__)m
954名無しさん@そうだ選挙にいこう:03/01/28 11:09
Access97のフォームから、参照設定入れて、Excelを開いています。
Excelが開ききった(処理が終了した)時点で、Accessを前面にもってきたいのですが、
どうしたら良いでしょうか。
955名無しさん@そうだ選挙にいこう:03/01/28 15:22
ボタンでサブフォームの中身を別のフォームに入れ替える方法を教えてください。
956名無しさん@そうだ選挙にいこう:03/01/28 17:55
はじめまして。
最近、アクセスを仕事でさわるようになって興味を持ったのですが、
本当にクエリーで一個一個条件入れて、必要なデーターを出す程度のことしかできなくて・・・
ここんも掲示板のみなさんのレベルも「雲の上の話」、始めはどうやってみなさん勉強したんでしょうか?
初心者に本当にお薦めのHPを知ってる方などいれば教えていただけませんでしょうか。
>>954
AppActivate
>>956
本を買え
>956
私はサブフォームをそれぞれのクエリー等に対して作って
(↑それぞれ出力するフィールド数等がまったく違う場合)
ボタン(仮にbtn_data、フォームはF_Form、F_Formに埋め込んだサブフォームをsubform、
各クエリーのサブフォームをsub_A、sub_Bとする)をある条件に従い押下した時に

btn_data押下時の分岐条件の指定
Forms!F_main!subform.SourceObject = "sub_A(あるいはsub_B)"

としています。
同じことをコントロールボックスの値やクエリーの切り替えに応用できます。
*****コントロールボックスの値の切り替え
Forms!F_main![コントロールボックス名].RowSourceType = "Value List"
Forms!F_main![コントロールボックス名].RowSource = "1;値A;2;値B;3;値C"
※この場合、プロパティで値リストを指定しておく
*****コントロールボックスのクエリーの切り替え
Forms!F_main![コントロールボックス名].RowSource = "[クエリー名]"
※この場合、プロパティでテーブル/クエリーを指定しておく

と言うようなことで、如何でしょうか?
960959:03/01/28 18:26
す、す、すいません…>>959は>955さんへでした
961名無しさん@そうだ選挙にいこう:03/01/29 02:12
スキャナで画像を読み取ると、自動的に、画像が保存され、しかも、自動的に、タイトル情報入力フォーム(登録された画像が取り込まれている)が開くようにしたいです。
画像をあらかじめ保存しておいて、その後に手動で、入力フォームで取り込む方法はわかるのですが、スキャナとアクセスを連動させるとなると、わかりません。
お知恵をお貸しいただければ幸いです。
ビジネス用に各社からファイリングソフトが出ていますが、自分の場合は簡単なものでよいので、アクセスで組めればと思っています。
962名無しさん@そうだ選挙にいこう:03/01/29 06:51
>>961
Newton(だったかな?)という会社のImageKitというソフトを買って下さい。
というか、スキャニングした画像を選択させる方式で良いと思うがなぁ。
API使ってファイル選択ダイアログ出せば、年寄りでも出来るだろうに。
963名無しさん@そうだ選挙にいこう:03/01/29 19:50
フォームをテーブルに連結させている時、
コンボボックスのリスト部分開いている時にマウスのホイール廻すと、
次のレコードを表示するのですが、この機能を止めて、コンボボックスの
リスト部分に付いているスクロールバーをスクロールさせたいのですが、
どこをいじったら良いでしょうか。
964名無しさん@そうだ選挙にいこう:03/01/29 23:28
access2000を使っています。
毎日500件位のデータが、エクセルで開くCSVファイル
で送られてきます。それをアクセスにインポートするのに
現在、一度CSVファイルを開き、上の2行が不要ですので削除して
一度保存し、それからインポートウイザードで3行目を
フィールド名にしてインポートしています。
これをもっと短い手順でするにはどうしたらいいのでしょうか?

965名無しさん@そうだ選挙にいこう :03/01/30 05:02
>>964

VBA使えないのか?
966名無しさん@そうだ選挙にいこう:03/01/30 08:04
>>964
VBA書けば簡単。ガンガレ!
967名無しさん@そうだ選挙にいこう:03/01/30 09:00
>>964
Private Sub InportCSV()
Dim InputFileNum, OutputFileNum As Integer
Dim wStr As String
Dim i As Long
'インポートファイル
InputFileNUM = FreeFile
Open "C:\FullPath\InportFile.CSV" For Input As #InputFileNum
'ワークファイル
OutputFileNum = FreeFile
Open "C:\FullPath\WorkFile.CSV" For Output As #OutputFileNUM
'インポートファイルから2行削除したワークファイルを作る
i = 0
Do While Not EOF(InputFileNUM)
i = i + 1
Line Input #InputFileNUM, wStr
If i > 2 Then
Print #OutputFileNUM, wStr
End If
Loop
Close #InputFileNUM
Close #OutputFileNUM
'ワークファイルからインポート
DoCmd.TransferText acImportDelim, , "出力テーブル名", "C:\FillPath\WorkFile.CSV", True
End Sub
969名無しさん@そうだ選挙にいこう:03/01/30 13:48
>>956
魔法使いとかT's

ぐぐれば出てくると思う
970名無しさん@そうだ選挙にいこう:03/01/30 14:09
>968
便乗して質問。
そういうときで、csvが複数あるときのファイル名の指定の仕方がわからないんですが。

DoCmd.TransferText acImportDelim, , "出力テーブル名", "C:\FillPath\WorkFile.CSV", True

¥WorkFile.CSVの部分なんですが。
>>970
Microsoft Common Dialog Control を使う。
フォームのデザインで挿入(I) →ActiveXコントロール(C)として
リストから選択するとフォーム上に作られる。
こいつを使えば、よく見かける「ファイルを開く」操作ができる。
972964:03/01/30 22:02
>>968,966,965
レスありがとうございます。VBAは全然わかりませんので
これから勉強していきます。今はマクロすらよく分かってないので
時間かかると思いますが…。968さんの教えてくれたのができるように
がんばります。
>>972
マァガンガレ('A`)
974970:03/01/31 00:02
アクションボタン一発でやるのって無理なんですか?
フォルダ内に
111.CSV、222.CSV、333.CSV・・・・・
とあるのをフォルダは変数myfolderにパス格納してcsvファイル名をDir関数で取得して
myfile変数に入れる
あとはループ処理で、myfileが空になるまで

DoCmd.TransferText acImportDelim, "出力テーブル名", "C:\FillPath\111.CSV", True

で、\111.CSVのとこにmyfileってやったけどエラーになるし。

ループ処理でやらないで、一つ一つ書くしかないんでしょうか?
>974
同一フォルダ内のcsvファイル全部を順に処理するってことかしら?
ループ処理はあってるのかな?
同一出力テーブル名になってエラーが起こってないかな?
csvファイルをどんどん取り込んで行くと言うことは別のテーブル名で保存するか、
同一テーブルに追加していくことだと思うけど…その辺はどうなってるんだろう?
追加だとすると、フィールド数とかデータ型はあってるのかな?

あと、以前同じようにファイル名を所得して…という処理をしたことがあったけど
(Ac97だったから、今でもそうかどうかは不明)、Dir関数では処理が早過ぎるのか
暴走するような感じでエラーが起こるらしく、GetFileNameと言う関数を作って使用
したことがある。どこかのHPにあったのを探し出して作ったよ。
それ以来、私はあまりDir関数を使わない…直接、フルパスを取得するようにしてる。

参考になるかな?
976名無しさん@そうだ選挙にいこう:03/01/31 03:53
                \ │ /
                 / ̄\   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
               ─( ゚ ∀ ゚ )<  2月2日 13:00
                 \_/   \_________
                / │ \
                    ∩ ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< 梅田丸ビルの電光掲示板に…
『(゚д゚)ウマー』!!!  >( ゚∀゚ )/ |    / \__________
________/ |    〈 |   |
              / /\_」 / /\」
               ̄     / /
                    ̄
http://life2.2ch.net/test/read.cgi/offreg/1043075025/l50
977名無しさん@そうだ選挙にいこう:03/01/31 09:29
>>974
これはどう?
Function FolderMemberImport()
Dim PathName As String
Dim FileName As String
PathName = "C:\My Documents\"
FileName = Dir(PathName & "File*.CSV")
Do While FileName <> ""
DoCmd.TransferText acImportDelim, "インポート定義", "インポート先テーブル名", PathName & FileName, False, ""
FileName = Dir
Loop
End Function
978974:03/01/31 09:46
同一フォルダ内のcsvファイル全部を順に処理します。アクセス97です。
CSV2個でテストしてます。
  Dim MyFolder As String
Dim MyFile As String
MyFolder = "C:\フォルダ゚
MyFile = Dir(MyFolder & "*.csv")

Do While MyFile <> ""
MsgBox MyFile ’チェック
DoCmd.TransferText acImportDelim, "インポート定義", "テーブル", "C:\フォルダ\MyFile"
MyFile = Dir()
Loop

ファイル名を一個具体的に書いたらきちんといくんですが上の書き方だとMSJTER35を開けませんになります。
出力テーブルのレコードは普通下にどんどん追加されていくものではないんですか?追加の記述がいるんでしょうか?
979名無しさん@そうだ選挙にいこう:03/01/31 09:58
980974:03/01/31 10:02
>977
すいませんレスに気づいてなくて
PathName & FileNameの書き方でできました
>975 977 ありがとうございました
981名無しさん@そうだ選挙にいこう:03/01/31 15:31
Win98/Me/Xp Access97環境下で・・・
CurrentUserでユーザーレベルの切り分けをしています。
例えばフォームに「仕入原価」があったとして、
ユーザーレベルにより、表示の可視:不可視を切り替えているのですが、
該当個所が複数になると、いちいち設定するのが面倒なので、
「タグプロパティ」が使えないかなぁ?と考えています。

具体的には、フォーム中の複数のコントロールをまとめて、
タグで「A;B;C」のレベルを設定しておき、
Form_Load の時に、CurrentUser により、どのタググループは
表示させない・・・って事がしたいのですが。。。無理でしょうか?
>>981
タグ自体が1つの塊なので無理っぽい気がしますが
よく分からないのでsage
>>981
Visibleプロパティで出来るのでは?
今、ひとつのタブをクリックしてプロパティを可視をいいえにしたら
そのタブだけ消えた…って自分で試せる程度のことじゃないの?
新スレッド建てました
ACCESS総合相談所 その7
http://pc2.2ch.net/test/read.cgi/bsoft/1037856185/l50
申し訳ない間違えてしまいました

ACCESS総合相談所 その7
http://pc2.2ch.net/test/read.cgi/bsoft/1043996834/
986名無しさん@そうだ選挙にいこう:03/02/01 00:20
1000!
>>981
こういうこと?

Private Sub Form_Load()
 Dim LevelString as String
 Dim ctr as Control

 LevelString = "CurrentUserと結びつけた文字"

 For Each ctr In Me.Controls
  ' 結びつけた文字がコントロールのタグに設定されていれば可視
  If ctr.Tag = LevelString Then
   ctr.Visible = True
  Else
   ctr.Visible = False
  End If
 Next
 
End Sub
>>975
> Dir関数では処理が早過ぎるのか暴走するような感じでエラーが起こるらしく、

99.9% あなたのバグ。