Access VBA質問箱 IV

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

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


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

【10358】Re:レポートの線の揃え方
発言  Gin_II  - 08/5/8(木) 13:12 -

引用なし
パスワード
   > 線が微妙にずれてしまいます

揃えたいコントロールを複数選択して、「書式」→「配置」を
使ってもずれてしまうってことでしょうか?
・ツリー全体表示

【10357】Re:アクセスで自動的に一括リンク処理を...
発言  Gin_II  - 08/5/8(木) 13:10 -

引用なし
パスワード
   > 添付書類のファイル名とアクセスで入力しているデータとで結びつけて

入力されているデータから、添付ファイルのファイル名はどのように
つながっているのでしょうか?

とりあえず、ハイパーリンク型フィールドで定められている書式に
したがって、データを作成すれば、自動化は可能だと思います。

表示テキスト#アドレス#サブアドレス#ポップヒント
・ツリー全体表示

【10356】CSVファイルの表示方法を変えたい
質問  たつ  - 08/5/7(水) 17:47 -

引用なし
パスワード
   はじめまして、こんにちは。

現在、顧客情報を入力し登録するフォーム『F_顧客』を作成しています。
『F_顧客』内の「CSV出力」のボタンを押すと、フォーム内に入力したデータが
CSVファイルとして出力するロジックを考え中です。

Private Sub CSV出力_Click()
  'Dim rs As New ADODB.Recordset
  Dim strSql As String
  Dim strFile As String

  If IsNull(日付) Or IsNull(顧客ID) Or IsNull(原価) Then
  
  MsgBox ("未記入があります。")
    DoCmd.CancelEvent
    txtdate.SetFocus
    Exit Sub
  End If
     
   
strFile = "c:\顧客情報.txt"
  Open strFile For Output Access Write As #1

  
    Write #1, _
    CStr(日付); _
    CStr(顧客ID); _
    CStr(原価); _

  Close #1 '

End Sub

このロジックではきちんとCSVに出力されるのですが、一つ問題があります。
このフォーム内に日付を入力するテキストボックス「txtdate」に
入力する際は○○/○○/○○(例:08/05/07)と入力し、
CSVファイルとして出力するデータの日付の表示を○○○○○(例:080507)と表示させたいのですが、今一歩のところでできません。
どこの設定でCSVの表示方法をかえることができるのでしょうか?
どなたかご教授お願いします。

説明がへたくそですみません。
・ツリー全体表示

【10355】レポートの線の揃え方
質問  初心者A  - 08/5/7(水) 14:35 -

引用なし
パスワード
   レポートで□で項目を作り田の様に並べると
線が微妙にずれてしまいます

きれいに揃える方法は無いでしょうか?
御教授願います。
・ツリー全体表示

【10353】Re:36進数の文字列を10進数へ変換するには
お礼  Access_Face  - 08/5/6(火) 21:41 -

引用なし
パスワード
   こんばんは
 さっそくですが、使わせていただきました。
速度はまったく遅いとは感じなくて、約34,000件のレコ−ド(テーブル)を基に
して、クエリに関数を入れ、実行したら、一秒もかからなくて、すぐ計算が終了しましたうよ。計算(変換)結果も正確で、本当にありがとうございました。
 でもそのまま使っては申し訳ありません、コードの意味を吸収しながら、自分の
応用力をアップしたです、またよろしくお願いします。
・ツリー全体表示

【10352】Re:36進数の文字列を10進数へ変換するには
回答  YU-TANG  - 08/5/6(火) 2:45 -

引用なし
パスワード
   ▼Access_Face さん:
>文字列   変換値:fncTemp([文字列],8)
>ABCDEFGH  24309841 ・・・・>36進数ABCDEFGHからの10進数結果ではない

えーと、コードをちゃんと読まれましたか?
第二引数の BaseNum (基数) に 8 を渡しているので、8 進数
からの変換になっているだけのように見えますが。
リンク先にも書いてあったように、エラー処理をしていないので
この場合は何が返ってきても不思議ではありません。
エラー処理は利用する側で実装する必要があります。

また、この関数を使って「36進数ABCDEFGHからの10進数」を
求めようとするなら、おそらく Long 型の範囲を超えますから、
オーバーフローを起こすと思いますよ。
どのみち、そのままは使えないでしょう。

あと、まさかとは思いますが、

>Let strList = "0123456789ABCDEFG...Z"

これは実コードのほうでは修正されてますよね??
念押しするほうが失礼かもしれないので書きにくいですが、
リンク先で上のように書いてあるのは、Z まで書くのが(おそらく)
面倒だったから「...」と省略しただけで、実際のコードでは(リンク
先のスレ先頭の質問文を見れば分かるとおり)省略なしできちんと
アルファベットを網羅しないと、まともな結果は返ってきません。
それは承知の上で、掲示板上だけ修正前のコードを貼ったという
ことでしたら(そうする意味はよく分かりませんが…)、流して
ください。


もしくは、処理速度を求めないなら、下の関数(手抜きですが)を
使ってください。

Function Base36ToDec(ByRef sNum As String)
  With CreateObject("ScriptControl")
    .Language = "JScript"
    Base36ToDec = .Eval("parseInt('" & sNum & "',36)")
  End With
End Sub

それでは。
・ツリー全体表示

【10351】Re:36進数の文字列を10進数へ変換するには
質問  Access_Face  - 08/5/5(月) 22:36 -

引用なし
パスワード
   YU-TANGさん

回答をいただき、ありがとうございます。早速やってみましたので、結果を
報告します。なんか結果がただしくないようです、その原因はなんでしょうか?
ご指導ください。

クエリの中に、8桁の文字列を使って、

文字列   変換値:fncTemp([文字列],8)
ABCDEFGH  24309841 ・・・・>36進数ABCDEFGHからの10進数結果ではない


Function fncTemp(ByRef Num As String, ByRef BaseNum As Long)
Dim strList As String
Dim lngResult As Long
Let strList = "0123456789ABCDEFG...Z"
Dim IDX As Long
For IDX = 1 To Len(Num)
Let lngResult _
= lngResult _
+ (InStr(1, strList, Mid(Num, IDX, 1), vbBinaryCompare) - 1) _
* BaseNum ^ (Len(Num) - IDX)
Next
Let fncTemp = lngResult
End Function
・ツリー全体表示

【10350】Re:36進数の文字列を10進数へ変換するには
回答  YU-TANG  - 08/5/5(月) 15:12 -

引用なし
パスワード
   ▼Access_Face さん:
> Accessの関数を調べましたが、36進数から10進数への変換関数は見付からない
>です。

日本語なら「基数変換」でググれば数万件、英語なら「radix base convert」
あたりで数十万件、リソースがヒットします。
その中から好きなのを選べばよいでしょう。

たとえばこちらなどはいかがですか。
www.accessclub.jp/bbs5/0025/vba7622.html
・ツリー全体表示

【10349】Re:フォームクローズでパラメータ要求が...
回答  YU-TANG  - 08/5/5(月) 14:13 -

引用なし
パスワード
   ▼Hiro さん:
>ある時から、Docmd.close にすると"パラメータを入力して下さい"のメッセージが出るようになりました。

下記と関係有るかもしれません。

support.microsoft.com/kb/811860/ja
・ツリー全体表示

【10348】36進数の文字列を10進数へ変換するには
質問  Access_Face  - 08/5/5(月) 10:45 -

引用なし
パスワード
   おはようございます。
 Accessの関数を調べましたが、36進数から10進数への変換関数は見付からない
です。知っている方がいましたら、
ぜひぜひ、教えてください!!
他の方法でもご伝授ください。
よろしくお願いします。
・ツリー全体表示

【10347】フォームクローズでパラメータ要求がでま...
質問  Hiro  - 08/5/5(月) 0:20 -

引用なし
パスワード
   こんばんわ 

やっと初級者卒業かなという程度のものです
access2002で予約台帳のようなものを、作っています。
フォームにパラメータクエリをソースにしたリストボックスを作り、フォーム上の
テキストボックスで絞込みをやっています。ごく普通にある教科書どおりのやり方です。最初はごく普通に動いておりましたが、ある時から、Docmd.close にすると"パラメータを入力して下さい"のメッセージが出るようになりました。
SQLも特段変わったところもなく、VBAもコンパイルできているので、「???」となりました。それから色々試してみましたが、結局
txt_A=Null
Listbox_A .Requery
Me.Repaint
と記述してみたらしばらく正常になりましたが、数日後にまたメッセージがではじめました。あまりに単純なところなので、AC2002のバグを疑い、試したことは 
1.新規にdb1を作りインポート
2.ListBoxをウイザードを使わずに手作りする
3.DAOで書いているので参照設定を確認
4.別のPCに移してみる
5.Access2000に変換
6.クエリーを見直してみる 

なにか お心あたりの方がいらっしゃいましたら、ぜひ ご指導をお願い申し上げます。
・ツリー全体表示

【10346】HyperlinkAddressに付いて
質問  おやじ  - 08/5/3(土) 17:45 -

引用なし
パスワード
   フォーム [F_like]![Web_Call()] から入力した
Webアドレスが存在しない場合に
「インターネットサーバーまたはプロシキサーバーが見つかりません」と
黄色の感嘆符が付いたメッセージが表示されますので
フォームから再び 正しいWebアドレスを入れても
前のアドレスから変更されないで
同じ「見つからない」と表示されます。
どうすれば 再び入力した 新しいアドレスを取得出来るでしょうか?

Forms![F_like]![Web_Call()].HyperlinkAddress = Web_Txt


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

【10345】リストボックスで特定レコード選択できず
質問  流星  - 08/5/3(土) 11:46 -

引用なし
パスワード
   すみません。AC2000利用で、DOS/Vりようです。質問ですが、リストボックスで特定レコ-ドをダブルクリックすると、実行時エラー2501:と表示されOpenFormアクションの実行はキャンセルされましたとなりフォームを開く事ができません。
リストボックスは、クエリーを基(”DBテーブル”を基にした”検索用ク”)に作成してます。
開こうとしている”照会用”フォームは、”DBテーブル”を基にしてます。

Private Sub list_対象_DblClick(Cancel As Integer)
Dim var対象 As Variant
  var対象 = Me.list_対象.Column(0)
  DoCmd.OpenForm "照会用", acNormal, "", "[DBテーブル]![管理番号]=" & var対象
Exit Sub
End Sub
・ツリー全体表示

【10344】アクセスで自動的に一括リンク処理をする...
質問  こまったさん  - 08/5/2(金) 22:45 -

引用なし
パスワード
   アクセス初心者です。
◎フォルダの中には、毎日数百件入力しているアクセスファイルのデータと、その一件一件のデータの添付書類が沢山入っているファルダがあります。毎日その数百件のアクセス入力データへ添付書類を一件一件ハイパーリンクをしてリンク作業をしているのですがとても時間がかかります。添付書類のファイル名とアクセスで入力しているデータとで結びつけて自動的に一括でリンク処理を行うことは出来ないのでしょうか。教えてください。(わかり難い説明ですみません)
・ツリー全体表示

【10343】Re:こういう日付を抽出するには・・。
お礼  あおぎん  - 08/4/30(水) 17:38 -

引用なし
パスワード
   ▼hatena さん:
>
>WHERE 社員コード Not In (SELECT 社員コード FROM T_パート契約履歴 WHERE 退職日 = #2008/03/31#) AND 採用日 = #2008/04/01#
>
>ではどうでしょうか。

回答ありがとうございます。
お礼が遅くなってすみません。

ご提示の方法で希望のデータを取得できました!!

Not IN ??
初耳です。
いろんな方法があるのですね〜。

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

【10342】Re:クエリの抽出条件について
お礼  かつ  - 08/4/29(火) 14:32 -

引用なし
パスワード
   hatenaさん、Naoさん

ありがとうございました。

とっても助かりました。
おかげさまで問題が解決できました。

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

【10341】Re:クエリの抽出条件について
発言  Nao  - 08/4/26(土) 9:08 -

引用なし
パスワード
   >抽出条件欄に、
>
>Like "*[A-Z,a-z]*"
>
>
>>もうひとつ・・・
>>数字4桁以外のものを抽出するようにするにはどうしたらいいのでしょうか?
>
>同じく抽出条件欄に、、
>
>Not Like "####"


hatenaさん、こんにちは。
そうですね、これで出来ますよね・・・

数字4桁の方も、テキスト型に混じっているのかと
勝手に深読みしまして、それならば何かコードを出しておいた方が
良いかと考えてしまいました。
・ツリー全体表示

【10340】Re:こういう日付を抽出するには・・。
回答  hatena  - 08/4/25(金) 22:13 -

引用なし
パスワード
   >採用日が 2008/04/01 のレコードの退職日は2008/3/31ではないので、採用日が 2008/04/01のレコードを全部拾ってしまいます。

ぼけてました(汗)

>適当な抽出条件はないでしょうか・・?

WHERE 社員コード Not In (SELECT 社員コード FROM T_パート契約履歴 WHERE 退職日 = #2008/03/31#) AND 採用日 = #2008/04/01#

ではどうでしょうか。
・ツリー全体表示

【10339】Re:クエリの抽出条件について
回答  hatena  - 08/4/25(金) 18:00 -

引用なし
パスワード
   ▼かつ さん:
>クエリの抽出条件の式の件ですが、
>アルファベットが含まれるものだけを抽出させたいのですが、
>どのように式を作ればできるようになるのでしょうか?

抽出条件欄に、

Like "*[A-Z,a-z]*"


>もうひとつ・・・
>数字4桁以外のものを抽出するようにするにはどうしたらいいのでしょうか?

同じく抽出条件欄に、、

Not Like "####"
・ツリー全体表示

【10338】Re:こういう日付を抽出するには・・。
質問  あおぎん  - 08/4/25(金) 17:54 -

引用なし
パスワード
   ▼hatena さん:
>>採用日2008/4/1で抽出した場合、上の例で行くと、0001 0002とも抽出してしまうのですが、実質的には、0001の人は、年度切り替えのため契約を分けているだけで、実質上の契約は、2007/11/1〜2008/6/30となっています。で、0002の人は、2008/4/1〜2008/6/30です。この例で行くと、採用日2008/4/1で 0002の人のみを抽出したいのです。
>
>WHERE 採用日=#2008/4/1# AND 退職日<>#2008/3/31#
>
>でいいのでは。

回答ありがとうございます。

ご提示の条件で試しますと

採用日が 2008/04/01 のレコードの退職日は2008/3/31ではないので、採用日が 2008/04/01のレコードを全部拾ってしまいます。

適当な抽出条件はないでしょうか・・?
・ツリー全体表示

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