ACCESSからODBC接続での書き込みや更新方法を教えてください

このQ&Aのポイント
  • ACCESSからODBC経由でSQL Serverにアクセスするための設定方法を教えてください。
  • SQL Server Management Studioでデータベースを作成したが、新規書き込みや更新ができない問題について解決方法を教えてください。
  • 確認すべき項目や設定方法を具体的に教えてください。
回答を見る
  • ベストアンサー

ACCESSからODBC接続での書き込みや更新

ACCESSからODBC接続での書き込みや更新 環境 OS:WindowsXP home SQL Server Express 2008 SQL server manegement studio 2008 パソコンネーム:pc01に SQL Server Express 2008をインストールしてあり そのパソコンからマイクロソフトACCESSからODBC経由で SQLにアクセス(全て同一パソコン) SQL server manegement studioで 以下のようにデータベースを作成しました データベース名:DB01 テーブル名:tbl_01 所有者:pc01\user1 ODBC接続の設定 以下3点以外は規定値 接続するSQLサーバーの名前:pc01\SQLEXPRESS ネットワークへのログインIDでWindows NTの認証メカニズムを使う 規定のデータベースを以下のものに変更する:DB01 この状態でACCESSからODBC経由でDB01のtbl_01に接続しても 新規書き込みや更新が出来ません、 書き込みや更新をしたい場合何を設定すれば良いのでしょうか? SQL server manegement studioで ユーザー、ロール、マップなどを 色々触って見たのですがテーブルの閲覧は出来ますが 更新や新規書き込みが出来ません。 確認すべき項目など御座いましたら具体的にお教え願えれば 幸いです、よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

こういう質問のときは、 ・どうやって更新しようとしたのか(手打ち?クエリ?) ・エラーメッセージが出たのかでないのか など、も書かれるようにした方がいいと思います。 回答者の推理力にも限界がありますから、的外れな回答になることもあります。 今回一番確認してほしいのは「tbl_01には主キーがあるのか」です。 ODBCでSQL Serverを参照するときは、AccessとSQL Serverをつなぐプロバイダというものを介することになりますが、データに主キーがないとうまく更新処理の対象を受け渡せないためです。 なので、そういう場合はよく「参照はできるけど、更新はできない」ということになり得ます。

matupo
質問者

お礼

jamshid6様 お教え頂いたようにtbl_01に主キーがありませんでしたので 主キーを入れることにより更新できるようになりました。 大変助かりました、有難う御座いました。

その他の回答 (1)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

パススルークエリを試してみましたか? これはAccessの解釈を経ず、直接DBエンジンに SQLが送られます。従って、SQLの文法、 オブジェクト名など、全てSQL Server に 準拠したものになります。

関連するQ&A

  • ODBC接続で新しいレコードを追加できない

    OS XP SP3、ACCESS2003 DBはSQLserver2005express です SQL Server Management Studio Express を使って 新しいDB、テーブル、項目は作成できました。 また同じツールを使って手入力でデータを追記することもできます 質問はこのテーブルを ACCESSからODBC接続して 追加クエリーを実行したいのですが リンクしてテーブルを開いた時点で新規レコードが追加できない状態です。 サーバーの更新をしたく、少ないデータであれば手入力でも 大量のデータでは…ACCESSのクエリーを使いたいと思っております。 ODBC接続の設定が読み取り専用になっているのか そうであれば その設定はどこにあるのか 教えてもらえないでしょうか? 宜しくお願いいたします

  • VBでODBC接続して更新・削除できない

    VBとSQLSerever2003を接続してプログラムしています。 ネットで検索しつつ以下のコードで接続できました。 Set SQL_DB = SQL_WSpace.OpenDatabase("", False, False, "ODBC;Driver={SQL Server};" "SERVER=" & (DATABASE_SERVER) & ";" "DATABASE=" & (DATABASE_NAME) & ";" "UID=" & (DB_ID) & ";" "PWD=" & (DB_PASS) & ";" SELECT文は問題ないのですが、DELETE文とUPDATE文だと、「指定されたテーブルから削除できませんでした」、「更新可能なクエリであることが必要です」とでます。アドバイスをお願いします。

  • SQLの更新方法について

    SQLの更新方法について 環境 OS:windows XP home sql server express2008 Microsoft SQL Server Management Studio 10.0.1600.22 現象 MS ACCESSからODBCを通してsql server express2008の中に作ったテーブル”TB01”にアクセスしていました。 あるときSQL Server Management StudioでTB01を削除しました。 ところがACCESSからODBCを通して接続すると削除したはずのテーブル”TB01”が見えていて リンクを張るとデータも出てきます、 ためしに新しくデータベースを作ってテーブルを作成してもODBCからは昔のままのテーブルしかありません。 SQL SERVERを再起動しても変わりません、どのようにすればSQLの内容を更新できるのでしょうか? どなたかお知恵を拝借願います。

  • CSE SQLEXPRESS ODBC接続ができません

    初心者です。 同じPCにSQLSERVER EXPRESS 2005を入れており、VISUAL STUDIOで使用しております。 そこでSQL作成ツールのCSEからSQLSERVERを使用するために、ODBC接続を作成してSQLSERVERで作成したデータベースに接続したいのですが、ODBC接続がうまく作成できません。 行っている設定方法は、 ユーザDSNでサーバ(local)を選択。 WINDOWS NT認証を使用を選択。 しかし、規定のデータベースの選択で、 master等は出て来て接続できるのですが、接続したい自分で作成したデータベース名が表示されません。 ほかに何らかの設定が必要なのでしょうか? よろしくお願いします。

  • SQLSERVERへのODBC接続について

    はじめまして。SQLSERVERへのODBC接続がうまくいきません。 初心者ですがよろしくお願いします。 自宅に2台のPCがあり、LAN接続できるようになっています。 (2台ともWindowsXP HomeEdition SP3です) 1台のPCにSQL SERVER2005をインストールしてリモート接続等の環境設定を行いました。 そのサーバーに別のPCからSQL Server Management Studio Expressを利用して接続できることを確認しました。 (テーブルも作成してみました) また、別のPCからEXCELのVBAでADODBを利用して、そのテーブルのデータを取得できることも確認しました。 しかしながら、ODBCのデータソース作成がうまくいきません。 ●ドライバ  SQL Server バージョン:2000.85.1132.00 ●エラー内容  [ODBC SQL Server Driver][TCP/IP Sockets]指定されたSQL Server  が見つかりません。  ※最初はアクセスが拒否されましたみたいなエラーが出ていた   ような気もするのですが・・・ ドライバにSQL Native Client Version09.00.2047を使ってみても、「サーバー接続の確立時にエラーが発生しました」となってしまい接続できませんでした。 ODBCを利用する場合には、何か特別な設定等が必要なのでしょうか? よろしくご教授お願いします。

  • ODBC接続ができない

    初めて質問する初級者です。 現在、DBにPostgreSQLを使って、クライアント側を Windowsアプリケーションにしようと思って、VB.NET (2003)でつくり始めたところです。PostgreSQLの接 続については、既に日本語ODBCドライバを使って Accessとの接続は確認済みで、安心していたのです が、今日VB.NETでODBCのクラスを作ろうと思い、 やってみているのですが、うまくいきません。 具体的に説明すると、「サーバーエクスプローラー」から「データ接続」の「接続の追加」を行い、 「Microsoft OLE DB Provider for ODBC Driver」を 選択して、既にAccessで確認済みのデータソースを 選んで接続してみました。ダイアログの中にある 「接続のテスト」ボタンをクリックすると、 「接続しました」と出てくるのですが、その「データ リンクプロパティ」を登録しようとすると、サーバー エクスプローラーに追加できません。エラーメッセージには、SQLサーバーかAccessしか登録できないような 文面でした。どなたかご指導下さい。よろしくお願いします。

  • ACCESSのODBC接続

    ご存知の方がいたら教えて下さい。 【動作環境】 OS:WINDOWS10(PRO) ACCESS 2013 SQL SERVER EXPRESS 2016 ODBCを使用してACCESSからSQL SERVERに接続しています。 データ参照やINSERTは問題なく、データ削除で2万件ほどのデータを削除しようとすると、「実行時エラー'3146' ODBC---呼び出しが失敗しました」のメッセージが表示され止まってしまいます。 1000件ほどでしたら、削除は行えます。 ・パススルークエリでDELETE FROM ○○を実行 ・リンクテーブルをVBAからクエリを開き削除 ・SQL SERVERにストアドを作成して、ACCESSから実行する を試したのですが、結果は変わりありません。 また、LOOPで1000件づつ削除も試したのですが、6回(6000件)ほどで同じメッセージが表示されてしまいます。 ODBCでの接続がネックなのかと思っているのですが、解決策が見出せません。 ヒント等でも教えていただければ助かります。 よろしくお願いします。

  • ODBCによるSQL serverへの接続方法を教えてください。

    PHPでSQL ServerへのODBC接続をしたいのですが、SQL Serverの場合の例がみつけられません。以下の~部分を教えてください。 try{ $db=new PDO("~"); $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); print('データベースへの接続を確立しました。'); }catch(PDOException $e){ die("エラーメッセージ:".$e->getMessage()); } ※SQL ServerへはWindows認証で接続しています。 PHP使用環境  OS:Windows2000 pro  PHP:5.1.6  ODBC:登録済み(Windows認証、登録時の接続テスト正常終了)  ※SQL Serverはリモートサーバ。

    • 締切済み
    • PHP
  • SQLServer接続する為のODBC作成について

    現在、windows2008サーバーより アクセスのシステムをPC5台で共有管理しております。 さらにPC(Windows7)を導入したため Windows7でAccess2007とSQL Serverを接続する為のODBCの作成し 設定してます。 他のPCの環境と同じように スタート/コントロールパネル/管理ツール/【データソース(ODBC)】 ODBC データソース アドミニストレーター画面で システムDSNタブを選択し、【追加】をクリック 【SQL Server】を選択し、【完了】をクリック。 ・新しいデータソースの名前:任意 ・データソースについての説明:任意 ・接続する SQL Server サーバー名:インストールしたサーバー名 QL Server側の設定で作成したログインユーザーの【ログインID】と【パスワード】を入力 【既定のデータベースを以下のものに変更する】にチェックを入れ 接続したいデータベースを選択し、【次へ】 【データソースのテスト】→【テストは無事に完了しました。】 とここまで設定は終了したのですが アクセスのシステムを起動しますと ODBC呼び出しは失敗しましたとなります。 もうベンダーと契約は切れているので 問合せできないのですが なにか見直す部分や確認事項はありますでしょうか? どうぞよろしくお願いします。

  • ACCESSでODBC接続の可能性を考慮しています。

    ACCESSでODBC接続の可能性を考慮しています。 ACCESS2007とACCESS2010からPostgresのDBかMySQLのDBへ ODBC接続するシステムの作成を考えています。 その上で課題として 1.PostgresかMySQLへODBC接続は可能か? 2.DB側でlocalhost以外の接続をはじくような設定はあるか? という問題があります。 お分かりになる方はいましたら、ご教授お願いいたします。