- 1 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 22:53:46.88 .net]
- AccessのVBAに関する質問スレです
★1 質問テンプレ(雛形)は用意しませんが、OSとAccessのバージョンは必ず書きましょう。 ★2 AccessのVBA以外の部分に関する質問はNGです。 但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。 ★3 AccessのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。 VBAとは、『Visual Basic for Application』の略で Application ├Workbooks |└Workbook | ├Worksheets | |└Worksheet というApplication以下のオブジェクトを、VB言語で操作するものを指します。 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。 ★4 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み、 コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。 ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。 ★5 わからなければとりあえず「マクロの記録」(Alt, T, M, R) 関連スレ Excel VBA 質問スレ Part23 toro.2ch.net/test/read.cgi/tech/1327763113/l50
- 101 名前:桃白白 mailto:sage [2013/04/13(土) 02:40:34.80 .net]
- >>99
Function marume(ByVal s As Double) As Double Dim Q As Double Dim H As Double Q = TimeValue("0:15") H = TimeValue("0:30") If s < Q Then marume = H Else marume = Fix((s + Q) / H) * H End If End Function
- 102 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 17:33:29.73 .net]
- >>100
フォームの[実時間]の時間によって[時間]に結果を出す場合で、 Function 時間(ByVal 実時間 As Double) As Double Dim Q As Double Dim H As Double Q = TimeValue("0:15") H = TimeValue("0:30") If 実時間 < Q Then 時間 = H Else 時間 = Fix(([実時間] + Q) / H) * H End If End Function としましたがうまくいかず、どこをどうしたら良いのかまるでわかりません。 ご指摘お願いいたします。
- 103 名前:桃白白 mailto:sage [2013/04/13(土) 20:28:48.85 .net]
- >>101
あら。結果がずれてた? それともなんか変な動きした? 引数の形式が違うのかな。どういう入力でどう出力された?
- 104 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 21:29:31.16 .net]
- >>102
[開始時間]に入力、[終了時間]に入力後、 時間の差を[実時間]に表示し、これを基に[時間]に結果を表示したい、という流れですが、 フォームを開くだけで以下の、 「イベント プロパティに指定した式 読み込み時でエラーが発生しました: このメンバー識別子は既にオブジェクトモジュールの中に存在しています。」 ※マクロ名、ユーザー定義関数、[イベント プロシージャ]以外の式が指定されています。 ※関数、イベント、マクロの評価でエラーが発生しました。 というエラーメッセージがでますが、正直理解できていません。
- 105 名前:桃白白 mailto:sage [2013/04/14(日) 01:59:24.64 .net]
- >>103
コントロールの名前と関数の名前が競合してるんでない? コントロールと関数を別の名前にしてコントロールソースで紐付けて やっちゃえばいいよ。こんな感じで。 Database1.zip download kie.nu/Xug
- 106 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 14:28:32.69 .net]
- >>104
うわー、ファイルのアップまでしていただき本当にありがとうございます。 テーブルに記録しておく必要があったため、 Private Sub 終了時間_AfterUpdate() 時間 = Marume(実サービス時間) End Sub ということで全てスッキリしました。 いただいたコード自体見てもほとんど理解しきれてませんが、 これから勉強しながら頑張ってみます。 再度、本当にありがとうございました。
- 107 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 11:54:05.25 .net]
- フォームのプロパティにある「コード保持」って何でしょうか?
「はい/いいえ」はどのように使い分けるのでしょうか?
- 108 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 12:30:11.35 .net]
- 存在しないオブジェクトに関連したコードを不要になったときに自動で削除する機能がある
たとえば"ボタンA"をクリックしたときのコードを書いてある状態で あとで"ボタンA"を"ボタンB"に名称変更したりしたときに コード保持が「いいえ」だと"ボタンA"をクリックしたときのコードは捨てられる
- 109 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 16:04:50.27 .net]
- どもです
つまりコード保持は、名称変更をした際に以前のコードが消えても良い または名称変更は絶対にしないような状況であれば、「いいえ」を選択しておいても良い と言うことで間違いないですか? どこかで「いいえ」にした方が速度が速くなる的なことが書いてあった覚えがあるので・・・
- 110 名前:デフォルトの名無しさん mailto:sage [2013/04/19(金) 16:43:59.98 .net]
- >>107
名前の自動修正オプションとこんがらがってないか? >>108 コード消えるのはフォームかレポート単位だぞ 名前変更とか関係なくて、そのフォームのコード全部消えるぞ ヘルプにはコードが無いからいいえの方が処理が早いとは書いてあるな その分制約もあるが ヘルプみて意味がわからないなら、設定変えるのはやめとけ
- 111 名前:デフォルトの名無しさん mailto:sage [2013/04/22(月) 10:00:33.47 .net]
- >>109
遅くなりましたが、ありがとです 試しにフォームを作成時に、「いいえ」を選択しておいた状態で イベントプロシージャを設定してみました。 その時点で自動的に「はい」に切り替わるんですね。 そしてコードを使うフォーム、レポートが1000個を超えるものは作れないと言う事なんですね。 勉強になりました。
- 112 名前:デフォルトの名無しさん mailto:sage [2013/04/25(木) 11:56:04.36 .net]
- タブコントロールでページ5枚作る。
チェックボックスによって表示ページ数を切り替えたい。 ・チェックなし : ページ1〜ページ5 ・チェックあり : ページ2〜ページ4 そのため、チュックボックスのイベントプロシージャで、一旦全部のページを非表示にして そのあと、必要なページを表示するようにしてみました。 For i=0 To 5 Me.Controls("ページ" & i).Visible = False Next i For i=Starrt To Start+Cnt Me.Controls("ページ" & i).Visible = False Next i それで、ページ5を選択している状態でチェックありにすると 消したはずのタブの周りの枠が残ってしまいます。 これを綺麗に消す方法ってありませんか? 環境はAccess2010です。
- 113 名前:111 mailto:sage [2013/04/25(木) 12:00:42.84 .net]
- 忘れてましたがタブの背景色を変更したいので
タブコントロールのプロパティで「テーマの使用」を「はい」に設定してあります。
- 114 名前:デフォルトの名無しさん mailto:sage [2013/04/25(木) 14:29:36.88 .net]
- 消す前に違うページを選択すれば良いだけじゃないのか?
- 115 名前:デフォルトの名無しさん mailto:sage [2013/05/21(火) 13:36:25.32 .net]
- チェックボックスの true が -1 から 1 に変わったようです
2007からでしょうか? 変更がめんどくさい
- 116 名前:デフォルトの名無しさん mailto:sage [2013/05/22(水) 11:48:10.00 .net]
- >>114
2003と2007で試したけど非連結で画面でチェックした場合はどちらも-1になる ただし、コードで1をセットしたら1のままだった まず1をセットするコード書くのが悪い そして、1でも-1でもBooleanとして評価したらTrueなんだから そんな事に影響されるコード書くのが悪い
- 117 名前:デフォルトの名無しさん mailto:sage [2013/05/22(水) 14:18:44.22 .net]
- >チェックボックスの true が -1 から 1 に変わったようです
>2007からでしょうか? キリっ
- 118 名前:デフォルトの名無しさん [2013/05/22(水) 14:27:02.75 .net]
- 知らんがな
ってレスしようと思ったけど かわいそうなので放っといた
- 119 名前:デフォルトの名無しさん mailto:sage [2013/06/04(火) 02:35:18.23 .net]
- 月曜会社を休んで家で土曜から月曜までVBAをひたすら書き続けた結果
頭が超重くなって3日目は何やってるかよくわからないまま終わってしまった VBAのコーディングをぶっ通しでやるのは2日が限界か?
- 120 名前:デフォルトの名無しさん mailto:sage [2013/06/05(水) 22:11:38.14 .net]
- >>118
限界は人それぞれだろうが、無理はすんなよ
- 121 名前:デフォルトの名無しさん mailto:sage [2013/06/21(金) 00:57:48.54 .net]
- access 2003 にて
SendObjectメソッドを利用して、メールを送信したいと思っています。 実際にメールを送れるようにはなっているのですが、 送信メール本文に「mdbファイルと同一ディレクトリにある単体の.msgファイルの本文」(.msgファイルの場所はフルパス指定でも構いません) を表示させる事は可能でしょうか? イメージ的には、テーブルから送信先アドレスを収集し、.msgファイルの本文の内容をテンプレートとして一括送信する と言った感じです。
- 122 名前:デフォルトの名無しさん mailto:sage [2013/06/21(金) 01:01:26.56 .net]
- 書き忘れました。
メール送信ソフトはoutlookです。
- 123 名前:デフォルトの名無しさん mailto:sage [2013/06/21(金) 07:11:37.65 .net]
- .msgファイルの形式ってたぶん公開されてないんだよなぁ
どうやってメールを.msgで保存してるかしらんが、そっちを変更した方が楽な気がする outlookでもVBAは使えるぞ
- 124 名前:デフォルトの名無しさん mailto:sage [2013/06/30(日) 18:38:52.19 .net]
- >>120
OutLookのSession.OpenSharedItemで.msgファイルの読み込みできるが 他のアプリからOutLookいじるのはお勧めしない OutLook側でmdbに書きだすとか、プレーンテキストで保存するとかした方が良いんじゃね
- 125 名前:デフォルトの名無しさん [2013/08/31(土) NY:AN:NY.AN .net]
- 質問です
ODBCの接続する際に IDとパスワードを入力するボックス(VBAで設定したものではない)がありますが、 初めから半角英数字になるように設定はできますか?
- 126 名前:デフォルトの名無しさん mailto:sage [2013/08/31(土) NY:AN:NY.AN .net]
- VBAで設定したものではないものを、VBAでどうこうするのは無理があります
- 127 名前:デフォルトの名無しさん [2013/08/31(土) NY:AN:NY.AN .net]
- >>125
ですよね。 IDやパスワードを入力するときに各々気を付けてもらうしかないですね。
- 128 名前:デフォルトの名無しさん mailto:sage [2013/08/31(土) NY:AN:NY.AN .net]
- >>126
プロパティにないの?
- 129 名前:デフォルトの名無しさん mailto:sage [2013/08/31(土) NY:AN:NY.AN .net]
- ODBCのミドル層で出てるダイアログだから、アクセス側からいじれるプロパティなんてないだろ
自分でIDとパスワード入力してもらうフォーム作ってそこに入力してもらえ
- 130 名前:デフォルトの名無しさん mailto:sage [2013/08/31(土) NY:AN:NY.AN .net]
- DBの持ち物か。すまん。
ダイアログの出る直前にACCESSで入力を固定して終わったら解除ってできないのかね。 (調べてない、ただの理想を述べてみた。)
- 131 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 00:30:06.54 .net]
- >>129
>>124が言ってるのは多分、ODBCで接続するときにユーザとパスワードを指定しなかったときに出るやつ 自分でちゃんと接続できるユーザとパスワード指定したら出ない 間違ったユーザやパスワード設定したらしらん
- 132 名前:デフォルトの名無しさん [2013/09/01(日) 02:59:29.29 .net]
- Access初心者です。
VBAでExcelからデータをコマンドボタンで自動インポートさせる物を 作っています。 インポート漏れがないかのチェック処理もさせたいのですが、 どのようにすればいいかわかりません、ご教授お願いします。
- 133 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 03:24:10.08 .net]
- >>131
レコード数で比較すれば?
- 134 名前:デフォルトの名無しさん [2013/09/01(日) 03:48:29.03 .net]
- >>132
ありがとうございます。 仮に件数が合わなくてインポート漏れしたレコードを 特定するための処理をいれることはできますか?
- 135 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 03:59:24.56 .net]
- ユニークキーで差分とれよ
少しは考えろよ
- 136 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 04:00:02.93 .net]
- >>133
ユニークキーで差分とれよ 少しは考えろ
- 137 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 08:49:32.79 .net]
- インポート漏れなんてあるの?
- 138 名前:デフォルトの名無しさん [2013/09/01(日) 09:02:48.06 .net]
- 結構ある
あと勝手にデータ変換されてたりもする
- 139 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 09:25:38.41 .net]
- そうか
ならインポートしてからチェックするより自前のコードでインポートした方がいいんじゃない?
- 140 名前: 【だん吉】 [2013/09/01(日) 09:31:40.27 .net]
- 自分はそうしてる
- 141 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 10:05:17.59 .net]
- ウィザードにまかせてるとひどい目にあう
- 142 名前:デフォルトの名無しさん [2013/09/01(日) 10:35:21.42 .net]
- Access初心者なので、そのVBAのコードの書き方がわかりません
教えていただけませんか
- 143 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 10:36:54.67 .net]
- いいですよ
- 144 名前:132 mailto:sage [2013/09/01(日) 19:42:00.26 .net]
- >>131
www.nurs.or.jp/~ppoy/access/access/acX014.html
- 145 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 20:23:21.63 .net]
- インポート漏れするデータ欲しい
試してみたい
- 146 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 23:14:50.69 .net]
- 数字型のとこに文字入ってるデータとか用意したらいいんじゃね
- 147 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 23:38:03.38 .net]
- >>145
うーん、そういうデータをインポートすると普通にエラーとして扱われて 「テーブル名_$インポート エラー」 ってテーブルが生成されるから インポート漏れのレコードがわからなくて困る、なんて状況にはならないんだよね
- 148 名前:デフォルトの名無しさん mailto:sage [2013/09/02(月) 10:35:57.67 .net]
- インポート漏れのレコードがわからなくて困る、なんて状況になると言ってる人はいないが
- 149 名前:デフォルトの名無しさん [2013/09/02(月) 10:57:43.03 .net]
- おもろいな
- 150 名前:デフォルトの名無しさん [2013/09/05(木) 23:50:52.09 .net]
- DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, _
strac, strxls, True, strrange 上記でインポート エラーになるので引数のacImportのところに、 作成したインポート定義にしたいのですができるのでしょうか
- 151 名前:デフォルトの名無しさん [2013/09/07(土) 03:42:11.28 .net]
- よし
- 152 名前:デフォルトの名無しさん mailto:sage [2013/09/07(土) 16:59:26.27 .net]
- そもそもワークシート変換にインポート定義とかないだろ
- 153 名前:デフォルトの名無しさん [2013/09/09(月) 01:4
]
- [ここ壊れてます]
- 154 名前:6:05.73 .net mailto: Accessの初心者です。
レポート印刷でページヘッダーのコードが変わったタイミングで改ページしたい かつ詳細の明細行は4レコードだけで改ページさせる、両方の条件を満たせるには、 どうやって作成したらよいかご教授お願いします。 [] - [ここ壊れてます]
- 155 名前:デフォルトの名無しさん mailto:sage [2013/09/09(月) 02:08:51.60 .net]
- ページヘッダーじゃなくて、その項目でグループ化してヘッダー作る
そのヘッダーかフッターで改ページを設定する 詳細の高さを4行分になるようにヘッダ、フッタや余白を調整する つか、VBAまったく関係ない話
- 156 名前:デフォルトの名無しさん [2013/09/09(月) 07:18:08.57 .net]
- >>153
ここはVBAのスレですよね?VBAと関係ある話をしてください。 VBAとまったく関係ない話をしたのはあなたです。VBAでお願いします。
- 157 名前:デフォルトの名無しさん [2013/09/09(月) 13:03:59.99 .net]
- VBAを一言で表すと
- 158 名前:デフォルトの名無しさん mailto:sage [2013/09/09(月) 13:20:44.56 .net]
- >>154
マジレスしといてやるが、VBAでやるよりよっぽど>>153の方法の方が良いぞ だがあえてVBAでやりたいなら 明細セクションの最初と最後に改ページコントロール(改ページ1,2)を配置して Dim 行数 As Integer Dim 前コード Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer) Me.改ページ1.Visible = False Me.改ページ2.Visible = False 前コード = Me.フィールド5 End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) If Me.フィールド5 <> 前コード Then Me.改ページ1.Visible = True 行数 = 0 Else Me.改ページ1.Visible = False End If 前コード = Me.フィールド5 行数 = 行数 + 1 If 行数 > 4 Then Me.改ページ2.Visible = True 行数 = 0 Else Me.改ページ2.Visible = False End If End Sub こんな感じ。この例ではフィールド5が変わったら改ページな
- 159 名前:デフォルトの名無しさん mailto:sage [2013/09/09(月) 13:22:34.74 .net]
- う。 は空白に置換してくれ
つか普通に貼り付けできなくなったのかよ
- 160 名前:デフォルトの名無しさん [2013/09/10(火) 00:16:36.47 .net]
- >>156
もう少し教えてください。。。 明細が5明細あった場合、 コードA 00001 00002 00003 00004 改ページ コードA 00005 改ページ コードB 00001 00002 00003 改ページ コードC 00001 こんな感じで出したいのですが
- 161 名前:デフォルトの名無しさん mailto:sage [2013/09/10(火) 02:26:08.63 .net]
- >>158
>>156が理解できないなら、VBAでやるのやめとけ
- 162 名前:sage [2013/09/17(火) 19:50:09.24 .net]
- Accessのクエリで、「クエリの並び替え条件を動的に変更する」方法を
教えて頂けないでしょうか。 現状は、下記のクエリを作成しましたが、並び替え条件として判定されません。 SELECT * FROM テーブル1 ORDER BY FORMS!画面1!テキスト1.Value よろしくお願いします。
- 163 名前:デフォルトの名無しさん mailto:sage [2013/09/17(火) 20:22:56.49 .net]
- >>160
SELECT * FROM テーブル1 ORDER BY FORMS!画面1!テキスト1.Value これってどこに書いてるの?
- 164 名前:デフォルトの名無しさん mailto:sage [2013/09/17(火) 21:44:28.61 .net]
- >>160
どうしてもやりたいならQueryDefとか使えばできるかもしれんが 動的にSQLつくってDoCmd.RunSqlでやる方がいいんじゃね
- 165 名前:160 mailto:sage [2013/09/17(火) 22:09:44.82 .net]
- >>161
Accessの「クエリ」で定義していました。 >>162 ご指摘を受けた点を参考にクエリを作成した所、うまく行きました。 ありがとうございます。
- 166 名前:デフォルトの名無しさん [2013/10/20(日) 21:44:25.62 .net]
- 株価のデータベースを作りVBAで銘柄の抽出をしています
VBAを呼ぶ度にSQLで株価データを読み込んでるので日に何度もやると結構無駄です そこでフォームをロードした時に纏めて銘柄毎のクラスオブジェクトを作り フォームをアンロードするまで保持したいのですが可能でしょうか? 変数の保持はStaticで良いようですが、配列化してるオブジェクトの保持はどのようにするのでしょうか?
- 167 名前:デフォルトの名無しさん [2013/10/20(日) 22:06:18.65 .net]
- view
- 168 名前:デフォルトの名無しさん mailto:sage [2013/10/20(日) 22:10:51.15 .net]
- すごいVBA発見w
esuafai.digi2.jp/
- 169 名前:164 mailto:sage [2013/10/20(日) 22:56:11.74 .net]
- フォームと連動させるのではなく、最初に実行させる時にStaticで保持し
2度目からオブジェクトが空ではないならデータを取りに行かずに 値渡しするようにして解決しました
- 170 名前:デフォルトの名無しさん mailto:sage [2013/10/21(月) 00:11:20.78 .net]
- なんか色々つっこみどろこ満載だな
まあ、動いてるならいいか
- 171 名前:デフォルトの名無しさん [2013/11/05(火) 18:56:30.39 .net]
- VBAでリモートのデータベースにトランザクション処理を開始して、コミット/ロールバックするのはわかりました。
これをマクロのアクションだけではできないですよね。 Vbaを嫌がる仲間が同一プロジェクト内にいるので。
- 172 名前:デフォルトの名無しさん [2013/11/16(土) 13:17:48.50 .net]
- 初心者ですみません。コンパイルってなんですか?
- 173 名前:デフォルトの名無しさん mailto:sage [2013/11/16(土) 13:19:54.03 .net]
- 疲労困憊る
- 174 名前:デフォルトの名無しさん [2013/11/16(土) 13:40:52.90 .net]
- コンパイルダー・オン
- 175 名前:デフォルトの名無しさん mailto:sage [2013/11/16(土) 15:59:42.46 .net]
- 昔広島にあったSTGや落ちゲーキャラゲー開発してた会社
- 176 名前:デフォルトの名無しさん mailto:sage [2013/11/16(土) 17:51:44.57 .net]
- あったなぁ
- 177 名前:デフォルトの名無しさん mailto:sage [2013/11/16(土) 18:27:38.04 .net]
- 脳みそコネコネの会社?なくなったのか?
- 178 名前:デフォルトの名無しさん mailto:sage [2013/11/16(土) 18:29:57.41 .net]
- マジレスしとこう
>>170 ソースプログラムを実行可能形式に変換する事 簡単に言えば、お前が書いたプログラムを実行できるように準備する作業 ACCESSなら勝手にやってくれるから、意識する必要はない
- 179 名前:デフォルトの名無しさん mailto:sage [2013/11/16(土) 19:25:11.96 .net]
- >>175
1998年に無くなって、落ちゲー関係はセガが買い取った
- 180 名前:デフォルトの名無しさん [2013/11/16(土) 21:35:05.65 .net]
- >>176
なるほど。では、あえてコンパイルという作業をしなくてもOK ってことですね。 あるがとうございます!
- 181 名前:デフォルトの名無しさん mailto:sage [2013/11/25(月) 21:45:32.92 .net]
- Accessの場合、ソースを中間コードに変換する作業をコンパイルと呼んでる。
その過程でソースにエラーがあるかどうかをチェックするから 実行時エラーとかの対策にはコンパイル通しておいた方が良いと思う。
- 182 名前:デフォルトの名無しさん mailto:sage [2013/11/26(火) 02:50:39.57 .net]
- 実行時エラーってのは普通、コンパイルは通った後に発生するエラーの事を言うんだが
まあ、実行時にコンパイルエラー出るのもなんだし、事前にコンパイルしとけってのは同意するが
- 183 名前:デフォルトの名無しさん [2014/01/31(金) 12:48:48.93 .net]
- Access独自の便利機能なのか分かりませんが
テキスト型のフィールドで日付が含まれる文を「日付順にソート」出来るのですが これをVBAでやるにはどうしたら良いのでしょうか? テキストに規則性が無いためにOrderByなどでは対応出来ません テキストフィールドに入ってる文字列の例: "第3四半期決算を1月10日に発表済み" "第3四半期決算を2月10日" "本決算を2月13日" "---" このようになってても、テーブルのフィールドを選択してソートが出来るとは初めて知ったのですが VBAからやる方法が分かりません
- 184 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 13:00:11.86 .net]
- >>181
>テキストに規則性が無いためにOrderByなどでは対応出来ません 最初に書いたSQLが悪かったみたいで これで出来ました。サーセン
- 185 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 15:57:33.35 .net]
- 辞書順と偶然一致しただけなんじゃないの
- 186 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 18:24:40.76 .net]
- そもそも
>テキスト型のフィールドで日付が含まれる文を「日付順にソート」出来るの これが怪しいんだが どこでこんな事教えられたんだ
- 187 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 19:17:48.82 .net]
- そうだな、俺も出来るとは思ってなかった
しかし、実際その通りに動くのだから仕方がないw だから最初に「Access独自なのか」と思ってるのだが これが出来るのは2013だからかもしれない
- 188 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 19:30:53.46 .net]
- テキスト型だから、文字数順に並び替えてるのかと思って試してみた
"本決算を2月13日"、これを"本決算を1月13日"に書き換えて試すと 日付順に並び替わる>>181の例で言うと真ん中に来る 更に"第3四半期決算を2月10日"、これを"第2四半期決算を2月10日" とやっても日付順に並び替わるので間違いない、>>181の例で言うと一番最初に来る しかし、2月3日と02月03日表記では並び方が変わる 具体的にはMD表記郡の中でソートされ、MMDD表記郡の中でソートされる
- 189 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 19:54:34.74 .net]
- 分かった。
- 190 名前:Oグったら出てきた
2007から出来るらしいけど、勝手に日付を解釈してるのではなく 正確にはテキスト部分を無視して数値順に並び替えてる、らしい [] - [ここ壊れてます]
- 191 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 21:40:18.27 .net]
- ということはデータを統一しないといけませんね
- 192 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 22:33:10.45 .net]
- ソートの問題じゃなくて暗黙の型変換の問題な気はするけど
>テキスト部分を無視して数値順に並び替えてる 普通にソートすればテキストでソートするんだが どうやったらそんなソートするんだ?
- 193 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 22:39:33.21 .net]
- どんな型変換すればそうなるのか、逆に聞いてみたい
- 194 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 13:42:22.69 .net]
- あいまいな検索をしたい場合はLike *検索文字列* だけど
これだと、先頭文字列に外字が含まれてる場合は検索されない のだけれど、回避方法はある?
- 195 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 23:15:37.86 .net]
- >>191
ちゃんと検索できるっぽいけど 先頭文字に外字ってのは、検索対象のテーブルデータなのか、Likeに指定する文字列なのか?
- 196 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 09:59:08.52 .net]
- >>192
先頭に含まれる外字は検索対象のテーブルデータです 文字列の中間に外字が含まれる場合は検索できるのに、 先頭だと検索されない減少が発生する…
- 197 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 16:26:19.10 .net]
- >>193
かるく試したが再現しないな OSかACCESSのバージョンによる問題か 単にお前の勘違いか ACCESSでも限定された状況でのバグか MDB(ACCDB)がぶっ壊れてるか まあ、単に検索できないレコードに不正なデータが混じってるだけだと思うが
- 198 名前:191 mailto:sage [2014/02/03(月) 18:14:37.26 .net]
- 一応解決したっぽい
原因として、dbmagicにodbc経由でリンクテーブルに したのがダメらしい リンクテーブルをやめて、テーブルデータごとインポートしたら 通常通りに検索できた みんなありがと
- 199 名前:デフォルトの名無しさん [2014/02/03(月) 18:49:01.92 .net]
- 喰らえカスども、奥義「後出し特殊条件!」
- 200 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 18:58:14.00 .net]
- 生データインポ時に変換されただけとかは?
つまりODBC接続でもデータを相応しい変換しておけば解決できるのかも
- 201 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 22:22:24.80 .net]
- そもそも外字サポートされてるのかどうかしらんが
たんにdbmagicで外字がバグってただけだろ
|

|