- ベストアンサー
エクセルVBAでPostgreSQLに接続する方法
- エクセルVBAでPostgreSQLに接続する方法について、初心者がわかるように説明します。
- エクセルからPostgreSQLに接続し、データの取得や挿入を行う方法について説明します。
- 接続テストを行い、SELECT文でデータを取得し、INSERT文でデータを挿入する方法を示します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
adoCON.Execute ("insert into employee values('00008','fujita'," & CDate(DateSerial(2010, 10, 1)) & ",38,'001'") を adoCON.Execute ("insert into employee values('00008','fujita',to_date('20101001','YYYYMMDD'),38,'001'") に変更したらどうでしょう? (postgresは未経験のため、ハズしている可能性アリ...)
その他の回答 (1)
- nicotinism
- ベストアンサー率70% (1019/1452)
PostGres は存じませんが >adoCON.Execute ("insert into employee values('00008','fujita'," & CDate(DateSerial(2010, 10, 1)) & ",38,'001'") ~employee (番号名,氏名,日付,・・・) values~ のようにフィールド名?カラム名?PostGresだと何というのだろう?が必要ではありませんか? あと、WHERE句が無いので全部置き換わってしまうような。 SQLで出来ることはSQLで、出来ないものに関してはレコードセットを・・でしょうか。 カテゴリを、技術者向けPCのその他のデータベースかPostgres辺りで相談されたほうが良かったかも。 ※うまく行かなかったでは、こちらに何も伝わらないので具体的に。
お礼
ご回答ありがとうございます。 ネット上でカラム名は省略できるという記述を見つけたので、SQLがあまり長いのも読みにくいかと思い、 今回は省略した形にしてみました。きちんとした説明をつけなくてごめんなさい。 私自身が初心者なので、専門用語もあまり知りませんし、難しい言葉で教えていただいても 理解が出来ないかもしれないと思ってこちらに投稿しましたが、やっぱりそちらで相談したほうが よいのですね><。・・・もうすこし話が理解できるようまでがんばります。
補足
他の方のお礼の補足にも書きましたが、とりあえずSQLの部分にミスがあったことがわかりました。 ども、お騒がせいたしました。 後、わからない部分は接続の確立方法とその流れについてです。 なぜ、接続に必要なパラメータの設定方法がいろいろあるの? なぜ、sqlを注入するのがconnectionだったりrecordsetだったりするの? などなど、疑問は山積みです。 この先はもう少し勉強をして技術者向けの方で質問してみます。
お礼
ご回答ありがとうございます。 SQLでは日付への変換はそのようになるのですね。ありがとうございます。 よく考えてみれば確かにCDateではおかしいですね。vbaで使うシリアル値を貰っても データベースは困りそう・・(^^;) それで、早速いただいたSQLで試してみたところ、残念ながらやはり成功しませんでした。 エラーメッセージも文字化けしてるし、何が悪いのかさっぱり・・・・TT とりあえずpostgresのsqlをもう少しぐぐって見ます。 どうもありがとうございました。
補足
すみません、成功しました! 単純な記述ミスでした。 <修正前のSQL> "insert into employee values('00008','fujita',to_date('20101001','YYYYMMDD'),38,'001'" <修正後のSQL> "insert into employee values('00008','fujita',to_date('20101001','YYYYMMDD'),38,'001');" 最後の閉じ括弧とセミコロンが抜けてました! データベースに直にSQLを流してみてわかりました。 先にこっちをしてみるべきでした><。 SQLに関する手詰まりはとりあえず解決しました。どうもありがとうございました。