SQLの窓 イラストAC フリー素材

2019年08月14日

IE11 : new ActiveXObject("ADODB.Connection") で .accdb のテーブル一覧を jQuery で TABLE に作成する

関連する記事

VBScript : 3種のMDB(または accdb)内の テーブル一覧取得方法

var cn = new ActiveXObject("ADODB.Connection");
var rs = new ActiveXObject("ADODB.Recordset");
var schema;

// ******************************
// データベースの接続
// ******************************
function connectDb(){

	// データベースの処理
	var path = "C:\\Users\\sworc\\Documents\\hanbaic-set\\hanbaic.accdb";
	var connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";";

	cn.Open( connectionString );

	schema = cn.OpenSchema( 20, [,,,] );

}

// ******************************
// jQuery でテーブル作成
// https://docs.microsoft.com/ja-jp/sql/ado/reference/ado-api/schemaenum?view=sql-server-2017
// ******************************
function buildTable( ){

	while( !schema.EOF ) {

		var table_name = schema.Fields("TABLE_NAME").Value;
		if ( table_name.indexOf("MSys") == 0 ) {
			schema.MoveNext();
			continue;
		}

		var tr = $("<tr class='rowdata'></tr>")
			.appendTo("#tbl");

		$("<td></td>")
			.appendTo(tr)
			.css({
				"color": "#007bff",
				"text-decoration": "underline",
				"cursor": "pointer",
				"width": "250px"
			})
			.text(schema.Fields("TABLE_NAME").Value)
			// セルにイベントを作成
			.on("click", function(){

				console.log( $(this).text() );

			})
			;

		$("<td></td>")
			.appendTo(tr)
			.text(schema.Fields("TABLE_TYPE").Value);


		schema.MoveNext();
	}

	cn.Close();

}

$(function(){

	// ロード時の全ての行の表示
	connectDb();
	buildTable( );

});



※ これ以外に、ドメイン間のデーターソースのアクセスを【有効】にしてください

<!DOCTYPE html>
<html>
<head>
<meta content="width=device-width initial-scale=1.0 minimum-scale=1.0 maximum-scale=1.0 user-scalable=no" name="viewport">
<meta charset="utf-8">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.css">

<link rel="stylesheet" href="https://lightbox.sakura.ne.jp/demo/two-section.css">

<script>
var cn = new ActiveXObject("ADODB.Connection");
var rs = new ActiveXObject("ADODB.Recordset");
var schema;

// ******************************
// データベースの接続
// ******************************
function connectDb(){

	// データベースの処理
	var path = "C:\\httpd142p\\ie11\\hanbaic-set\\hanbaic.accdb";
	var connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";";

	cn.Open( connectionString );

	schema = cn.OpenSchema( 20, [,,,] );

}

// ******************************
// jQuery でテーブル作成
// https://docs.microsoft.com/ja-jp/sql/ado/reference/ado-api/schemaenum?view=sql-server-2017
// ******************************
function buildTable( ){

	while( !schema.EOF ) {

		var table_name = schema.Fields("TABLE_NAME").Value;
		if ( table_name.indexOf("MSys") == 0 ) {
			schema.MoveNext();
			continue;
		}

		var tr = $("<tr class='rowdata'></tr>")
			.appendTo("#tbl");

		$("<td></td>")
			.appendTo(tr)
			.css({
				"color": "#007bff",
				"text-decoration": "underline",
				"cursor": "pointer",
				"width": "250px"
			})
			.text(schema.Fields("TABLE_NAME").Value)
			// セルにイベントを作成
			.on("click", function(){

				console.log( $(this).text() );

			})
			;

		$("<td></td>")
			.appendTo(tr)
			.text(schema.Fields("TABLE_TYPE").Value);


		schema.MoveNext();
	}

	cn.Close();

}

$(function(){

	$("#action").on("click", function(){

		// ロード時の全ての行の表示
		connectDb();
		buildTable( );

	});


});
</script>
</head>
<body>
	<div id="head">
		<input type="button" value="実行" id="action">
	</div>

	<div id="extend">
		<table class="table">
		<tbody id="tbl">

		</tbody>
		</table>

	</div>

</body>
</html>


関連する記事

下半分がスクロールするページ【 height: calc( 100% - 120px ) 】



【IEの最新記事】
posted by at 2019-08-14 21:09 | IE | このブログの読者になる | 更新情報をチェックする