AccessVBAで、フォームをダイアログで開いているはずが処理が流れてしまう

投稿者: Anonymous お世話になります。 AccessのVBAで、フォームをダイアログで(そこでブロックして)表示しようとしているのですが、どうやってもそのまま処理が流れてしまいます。 行っていることは、 プロパティでは ・ポップアップ = はい ・作業ウィンドウ固定 = はい 実際にコードで表示する際には、 DoCmd.OpenForm “F_Floor”, , , , , acDialog と 記述しています。 これだけの設定でできるはずなのですが、他に何か原因がありますでしょうか。 下記にその部分コードを記述します。 For cnt = 0 To 3 MsgBox “” & cnt & “階です。” DoCmd.OpenForm “F_Floor”, , , , , acDialog MsgBox “a” Next 『○階です』の部分が出てから『a』が、F_Floorの終了を待たずに出てしまいます。 Accessのバージョンは2010です。 よろしくお願いいたします。 解決 DoCmd.OpenForm は、第1引数のフォーム名以外は省略可能です。そのため、第2引数以降は引数名を明記しなくてはなりません。 DoCmd.OpenForm “F_Floor”, , ,…(Continue Reading)

AccessのSQLでDateAdd関数と日付を比較すると『比較条件の型が一致しません』とのエラー

投稿者: Anonymous お世話になります。 MicrosoftAccess2010でSQLを記述しているときに、現在の日時(NOW())と、日付フィールドの値をDATEADDで加算した日付を比較すると、『比較条件の型が一致しません』とのエラーになります。 DATEADD関数が返す値は日付型だったと思うのですが、これがなぜエラーなのかが解りません。 原因と対策をお教えいただけますでしょうか。 記述はこのようになっています。 SELECT * FROM tmp1 WHERE NOW() < DATEADD(‘m’,7,visited_dt<日付型のフィールドyyyy/mm/dd hh:nn:ssの形式>) ↑失敗 SELECT * FROM tmp1 WHERE NOW() < visited_dt ↑これならOK、まぁ当たり前ですが。 SELECT * FROM tmp1 WHERE NOW() < CDATE(DATEADD(‘m’,7,visited_dt)) ↑これもNG。エラー内容は同じ UPDATE tmp1 SET a = DATEADD(‘m’,7,visited_dt) SELECT * FROM tmp1 WHERE NOW() < a ↑二回に分けて行った結果、これならOK。 よろしくお願いいたします。 解決 Access2016で検証してみました。 クエリではDateaddしても結果は返しましたがVBAでは多分失敗すると思います。 理由は下記になります。…(Continue Reading)

llenar un datatable con ajax y php mvc

publicado por: Anonymous Hola estoy tratando de llenar un datatable en php pero no logro hacerlo, esto es lo que tengo: controlador public function VentasXvendedor(){ $IdVendedor= strtoupper(utf8_encode($_REQUEST[‘IdVendedor’])); $arrayCli=array(); $data=$this->model->BuscarVentasXvendedor($IdVendedor); for ($i=0; $i < count($data); $i++) { $resultadodetallado_json = array( ‘c_numped’ => utf8_encode($data[$i]->c_numped),// ‘c_nomcli’ => utf8_encode($data[$i]->c_nomcli),// ‘c_asunto’ => utf8_encode($data[$i]->c_asunto), ‘c_login’ => utf8_encode($data[$i]->c_login), ‘estado’ => utf8_encode($data[$i]->estado), ‘moneda’…(Continue Reading)

C# OLE DB経由とAccessとでSQLの実行結果が違う

投稿者: Anonymous お助けください。 例えば、ふりがなが「おか」から始まる人物を検索しようとすると、「おが」から始まる人も ヒットしてしまいます。 Accessのクエリではこのような問題は起こりません。 なぜこのようなことが起こるのか、分かる方はいますでしょうか。 環境 Windows 10 64bit Access 2013 64bit   実行部分のコード var connectionStr = @”Provider=Microsoft.ACE.OLEDB.15.0;Data Source =” + dbfilePath; DbConnection = new OleDbConnection( connectionStr ); DbConnection.Open(); DbCommand = new OleDbCommand { Connection = DbConnection }; var sql = “SELECT * FROM [名簿] WHERE [ふりがな] Like ‘おか%'” var dataTable = new…(Continue Reading)

AccessでVBEがアクティブになった時、文字入力が勝手に日本語入力モードにされる対処法

投稿者: Anonymous お世話になります。 プログラムの質問ではなく、AccessのVBAの編集のVBEの操作についての質問です。 MicrosoftAccess2010で、VBEでコードを編集→本体のウィンドゥで動作確認→VBEで編集を しようと、マウスでVBE側をクリック。 直前の編集でも半角英数モードにしていたのにもかかわらず、本体からVBEにアクティブ権が 移ると、文字入力が勝手に日本語入力モードに変わってしまいます。 多分、はるか以前から出ている現象だとは思い、サイトを探してはみたのですが、どうも 該当する記事がなかったため、こちらで質問することにしました。 いまさらながら…の質問ですが、お分かりの方がいましたら対処法をお教えいただけますでしょうか。 よろしくお願いいたします。 解決 回答では無く、しかもExcel2002での事例ですが、類似の動作と思われるものがありました。 関連性は不明ですが、参考になるかもしれません。 excel 2002 VBE での動作についての質問です 質問部分: vista上でexcel 2002 を使用しています。 VBEでコードを入力している際のIME2010の動作について質問します。 コードを入力する際、変換モードを直接入力にしていますが、「上書き保存」「コードのステップ実行」をクリックすると入力モードが勝手に「ひらがな」に替わってしまいます。そのため毎回入力モードを直接入力に戻さなければならず、非常に不便で困っています。IMEのプロパティ設定で対応できないか、詳細なテキストサービスをオフにしてみたり、その他いろいろやってみましたが改善することができませんでした。 (自己)回答部分:(太字化は引用者) 色々試したところ、原因らしきものに行き当たりました。セルの入力規則でIMEオン設定にしているセルを選択(SelectかActivate)するコードが実行されると日本語入力がオンになってしまっていたようです。また、入力規則でIMEオンに設定されているセルを選択した状態で[半角/全角]キーのトグル操作で日本語入力をオフにし、上書き保存をすると再度日本語入力がオンになってしまうようでした。 今作っている物は、入力する人がIMEの切り替えを意識せず入力できるようにするためにセルの入力規則でIMEをオン設定にしたところが結構あり、またオン設定されているセルを選択して操作するコードが非常に多くありました。そのためデバッグでコードのステップ実行を行うたびに今回の現象が発生していたようです。IMEオン設定以外のセルを選択するコードを実行してみたところと日本語入力はオンの状態からオフに切り替わりました。 コードを入力するには勝手に日本語入力がオンになってしまうのはとても不便ですが、毎回コード上でIMEのオン・オフを設定をするより、最初から入力規則を設定しているほうが楽なので我慢するしかなさそうですね。お騒がせしました。 IME関連のページ例: IMEHold プロパティ (Access) / テキストボックス. IMEMode プロパティ (Access) "IMEHold/IME 入力モード保持" プロパティ / "IMEMode/IME 入力モード" プロパティ テキストボックスのIMEモードを制御。 回答者: Anonymous

Access SQLで、二つのテーブルを比較し、片方にしかない方のデータのみを取得する方法について

投稿者: Anonymous お世話になります。 初歩的な質問ですみません。 Access2010を使用しています。 基本となるAテーブルと、比較するBテーブルのidを見て、AにはあるがBにはない レコードのみを抽出するSQLを作成しています。 SELECT * FROM A LEFT JOIN B ON A.id = B.id WHERE ISNULL(B.id) = TRUE …と、方法自体は間違っておらず、結果も正しいものを取得できてはいるのですが、 A,B共に件数が六万件以上あり、このクエリひとつで30秒ほど時間がかかって しまいます。 もっと高速に動作する方法はないでしょうか? 一つの方法として、一度中間テーブルのCを用意し、 ① INSERT INTO C (id) SELECT id FROM A ② DELETE * FROM C WHERE EXISTS (Select * From B Where C.id = B.id) ③SELECT * FROM A…(Continue Reading)

MS Accessで複数選択可のコンボボックスに VBA にて指定した項目をチェックする方法

投稿者: Anonymous 表題の通りなのですが、複数選択可にするとどうすれば VBA 上からコンボボックスに指定した項目をチェックするのか分かりません。 VBA に慣れていないこともあり、まったく的外れな方法でやろうとしたのか、 選択用関数があるのでは? .Value が配列だから配列を追加してやればいいのでは? 2が駄目だったから別の配列を用意して入れ替えるのは? の三本立てで攻めてみましたが、駄目でした。 実現方法をご存知の方はアドバイスをよろしくお願いいたします。 上図: テーブルの設計 上図: フォームの内容 上図: VBAサブルーチンの内容 解決 以下の様にすればいいと思います。 タグ.Value = Array(“ゴリラ”) 複数の場合は以下の様にします タグ.Value = Array(“ズック”,”ゴリラ”) ただし、存在しなくてもアイテムが増えてチェックがついてしまうので、存在しないアイテムを追加しないように気を付けてください。 タグ.Value = Array(“たぶん無いだろうと思うアイテム”) コメントに書いた部分の検証コード 大した内容ではないですが、コメントだと読みにくいのでコードにしました。 試す場合は意味ディエイトウィンドウを表示しておいてください。 Private Sub コマンド7_Click() Debug.Print “* Sample1 *” Call Sample1(Me![タグ].Value, Me![タグ].Value) Debug.Print “–” Debug.Print “Result: ” & UBound(Me![タグ].Value) ‘ 結果は増えない Dim…(Continue Reading)

Access INSERTで文字列をセットするときに、全角スペースが半角スペースとして見られてしまう

投稿者: Anonymous お世話になります。 MicroSoft Access2010で、ある特定のフォルダの配下のすべてのファイルを調べ、 そのファイルのフルパスをキーとして登録するコードをC#で書いています。 ファイルのフルパスでは、きちんと半角スペースと全角スペースは別物として 判断してあるのに、Accessに登録しようとすると、文字列の中に全角スペースが あっても、半角スペースとして登録(INSERT)しようとしてしまい、すでに 登録済みとしてキー違反になってしまいます。 テキストモードとバイナリモードというのがあるのは解ったのですが、INSERTするときに バイナリモードでできればよいとは思うのですが…。 半角と全角をきちんと識別して扱う方法を教えてください。 よろしくお願いいたします。 解決 何らかの方法でエンコードした状態でテーブルに格納し、その値を利用するときはデコードしてから利用する、というのはどうでしょうか。 例えば、一般的に「URLエンコード」と呼ばれる方法を採用するとします。 以下の2種類のパスを格納する場合を考えます。 “C:Path 1” … 半角空白で区切られている “C:Path 1” … 全角空白で区切られている UTF-8でURLエンコードした場合、各パスは以下のように表され、区別できます。 “C%3A%5CPath%201” “C%3A%5CPath%E3%80%801″ エンコードの方法は、別にURLエンコードでなくてもかまいません。 仮に半角/全角空白が区別できればよい&それ以外の文字はASCII文字しかない、ということなら、もっとシンプルなオレオレエンコード(例えば半角空白を”★”に置き換える、など)でもよいと思います。 回答者: Anonymous

Exception: “No se puede convertir un objeto DBNull en otros tipos”

publicado por: Anonymous Tengo la siguiente función que obtiene datos de una DB en Access. Me arroja el error comentado en el encabezado. Hice un punto de parada, para saber mas o menos en que lugar estaba ocurriendo el error y logré dar que se encontraba en la siguiente linea. p4 = Convert.ToInt32(validacampo(zp_.Rows(cont)(“pax_evaden_p4”))) Lo que…(Continue Reading)

¿Porque me sale “Se excedieron los recursos del sistema” C# Access?

publicado por: Anonymous estoy trabajando con c# y access, este es mi codigo: foreach (var item in alumnos) { OleDbDataReader reader = Connection.Read(“SELECT * FROM Estudiante WHERE cod=” + item.cod); if (reader.Read()) { } else { MSAConnection.execute(“INSERT INTO Estudiante (cod,tipoEstudiante,nombre,Paterno,Paterno,nombreCompleto,grado,paralelo,cel,CelT,codColegio) ” + “values (“” + Convert.ToInt32(item.cod) + “”,”” + tipoEstudiante + “”,”” + item.nombres.ToUpper() +…(Continue Reading)

Conexion de base de datos access con JAVA

publicado por: Anonymous Saludos no se por que no corre la conexión sera por el jackcess que estara obsoleto o por la versión de mi jdk 1.8? porque ya agrege el JAR UCanAccess 4.0.4 a las librerias a traves de netbeans package Frames; import java.sql.*; import javax.swing.*; import java.sql.DriverManager; /** * * @author */ //…(Continue Reading)

INNER JOIN en Update

publicado por: Anonymous Estoy migrando una consulta de Access a SQL Server, el problema es que en Access permite realizar INNER JOIN en el UPDATE UPDATE (Aux_Nodos INNER JOIN Nodos_NULL_Titular ON Aux_Nodos.Necesidad = Nodos_NULL_Titular.Necesidad) INNER JOIN Out_Arcos ON Aux_Nodos.Id_Nodo = Out_Arcos.Id_Nodo_Destino SET Out_Arcos.Id_Nodo_Destino = Nodos_NULL_Titular.Id_Nodo En StackOverFlow en ingles vi que habia que hacer algo…(Continue Reading)

Inserción de datos en una base de datos access en java

publicado por: Anonymous Buenas estoy comenzando a programar en java y quiero insertar datos en una base de datos de access mi codigo es el siguiente. class conexion { public Statement stm; private Connection conexion; private ResultSet rst; public conexion(String ins) { try { conexion = DriverManager.getConnection(“jdbc:ucanaccess://src/base_datos/aplicativo.mdb”); stm = conexion.createStatement(); rst = stm.executeQuery(ins); System.out.println(“CONEXION REALIZADA…(Continue Reading)

ACCESSのVBAでテーブルのindex情報を取得したい

投稿者: Anonymous ACCESS2013のVBAについて質問です。 あるテーブルに特定の名前のインデックスがあったら処理を行う、というコードを書きたいのですが 、以下のNameという部分に対して「メソッドまたはデータ メンバが見つかりません」というエラーメッセージが表示されます。 If CurrentDb.TableDefs(“テーブル”).Indexes.Name = “インデックス名” どのようにしたらエラーを解消することができますでしょうか? 解決 Indexesオブジェクトには複数のIndexオブジェクトが含まれているので、コレクションとしてFor Eachステートメントで扱わなければなりません。 For Each idx in CurrentDb.TableDefs(“テーブル”).Indexes If idx.Name = “インデックス名” Then ‘ TODO:処理を追加 Next 回答者: Anonymous

XAMPP環境でPHPからAccessのDBに接続する方法

投稿者: Anonymous お世話になります。 MicrosoftAccess2010(32bit)のDB(.accdb)を、PHPで接続してWeb化をしようとしています。 将来的にはXAMPPのMySqlのデータを使用するので、Accessからは切り離せるのですが、 今まで生きていたAccessのシステムで使用していたデータはAccessにあるため、 完全に完成して公開するまではデータベースは既存のAccessのものを転用する流れでいます。 そこで、その方法を調べていたところ、こちらのサイト様にたどり着きました。 『https://qiita.com/ginga_sil/items/865299fa3a899ac723d9』 始まって間もなくのところに、AccessとPHPを32bitで合わせないと動かないと 書かれておりました。 ところが、現況ダウンロードできるXAMPPは64bitのものしか見当たりません(単に探し方が 悪いだけかもしれませんが…)。そうなってしまうと、実質接続できないということに なってしまうのですが、あきらめるしかないのでしょうか。 ご助力をお願いいたします。 解決 条件に合う?使える?性能は?費用を出せるか?等の様々な疑問はありますが、 以下の記事の解決マークの付いていない方の回答に、こんな情報があります。 使えるなら費用を払っても良いと考えられるなら、14日間試用版で調査してみるのはどうでしょう? Using 32 Bit Modules with Apache 86_64 Arch (64 bit) 質問: So I have a very unique problem. I am using php-ODBC (32 Bit) to connect to a remote ERP system. This system is propitiatory and…(Continue Reading)

Accessのマクロからftpアップロードのbatファイル実行について

投稿者: Anonymous Accessマクロの「アプリケーションの実行」でftpへデータをアップロードするbatファイルを実行しようとしてますがうまくいきません。 直接batファイルを実行するとうまくいきますが、アプリケーションの実行でbatファイル実行するとうまくいかない状況です。 流れとしては以下の通りになります。 ftpへファイルをアップロードするbatファイルを作成。 1.のbatファイルを実行し、ftpへデータがアップロードがされた事を確認。 1.のbatファイルを今度はAccessマクロの「アプリケーションの実行」で実行。 一瞬コマンドプロンプトの画面が表示されるもすぐに消え、マクロが終了。ftpへファイルがアップロードされていない。 現象や解決策に心当たり有ればアドバイス頂いてもよろしいでしょうか。 なお、batファイルの中身はftpにアクセスしてdelでファイルを削除した後にputでファイルを保存するだけのものです。 batファイルの内容 open 【ftpのアドレス】 【ftpのID】 【ftpのパス】 bin prompt cd jousen del 【削除するファイル名】 put C:【アップロードするファイル名】 bye 実行しようとしたbatファイルの内容は上記の通りです。 Accessからではなく直で実行すると、上記に記載された内容がコマンドプロンプトに表示されてアップロードが完了しますが、 Accessの「アプリケーションの実行」から行うと画像のように 一瞬だけコマンドプロンプト出て消えてしまいます。 batの最後のbyeをカットしても結果は同じなので、batファイルの内容見に行く前になんらかのエラーで終了している気もしますが、それがどんなエラーか見当つかずの状態です。。。 >sayuriさん 正確な情報提示できておらずすいません。 比較対象の直接実行したファイルですが、「ftpcopy_面談.bat」というファイルを実行(ダブルクリック)します。 中身は以下の通りです。  ftp -s:ftp_bat.txt で、ftp_bat.txtの中身が上の方で記載したソースになります。 ftpcopy_面談.batもftp_bat.txtもAccessファイルも全て同じフォルダ(ローカル端末上)に保存しております。 >kunifさん アドバイス頂きありがとうございます。 リンク先を参考に、作業フォルダや各種パスの環境も見直してみます。 解決 ftpcopy_面談.bat ftp -s:ftp_bat.txt このコマンドですと、カレントディレクトリにあるftp_bat.txtを検索します。 エクスプローラー上でftpcopy_面談.batをダブルクリックして実行した場合、ftpcopy_面談.batが置かれているディレクトリがカレントディレクトリに設定されるためftp_bat.txt見つけることができます。 しかし、Accessマクロの「アプリケーションの実行」ではカレントディレクトリが明示されていないためftp_bat.txtを見つけられていない可能性があります。 %~dp0でバッチファイルの存在するディレクトリを表すことができるため ftp -s:%~dp0ftp_bat.txt と変更して試してみてください。 「実行しようとしたbatファイル」は実際にはbatファイルではありません。質問文の更新を待ちますが 成功した「直接batファイルを実行」の操作 失敗したAccessマクロの「アプリケーションの実行」…(Continue Reading)