A-AA+then

ใช้จาวาสคริปติดต่อฐานข้อมูล access ยังไงครับ

3,986
ลองหาในxxxเกิ้ลอยู่ 3 วันก็ยังไม่ได้
จุดประสงค์คือ
1 ใช้จาวาสคริปอย่างเดียวติดต่อฐานข้อมูล access ทั้ง บันทึก อัพเดท เรียกดูข้อมูล
2 ไม่ใช้เวบเซิพเวอร์ใดๆทั้งสิ้น
3 เป็นแค่ไฟล์ html กับ access

-หลักๆคือไม่อยากใช้ webserver
-validate ข้อมูลได้จากหน้าเวบ(IE) เช่น เช็คค่าว่าง, ใส่ตัวเลขอย่างเดียว, กรอกได้เฉพาะภาษาไทย
-บันทึก แก้ไข เรียกดูข้อมูลจากหน้าเวบ(IE)ได้ คือเป็บแบบออฟไลน์อะครับ

ก็คือใช้แค่ IE กับ ไฟล์ database.mdb(access) แบบออฟไลน์ครับ

แนะนำให้ทีนะครับ

ขอบคุณมากๆครับ

11 ความคิดเห็น

555++++

น่าจะหาอีกสัก 7 วัน แล้วค่อยมาถาม

ที่หาไม่เจอเพราะมันติดต่อกันไม่ได้น่ะสิครับ

ทำความเข้าใจกันก่อน
Javascript ทำงานฝั่ง Browser
PHP (หรือภาษาอื่นๆ) ทำงานฝั่ง Server
และ Database จะอยู่ที่ Server

ดังนั้นจะเห็นได้ว่า Javascript จะไม่สามารถติดต่อ Database ได้ เนื่องจากอยู่คนละที่กัน

ถ้าคิดจะทำเว็บเพื่อใช้ภายในองค์กร หรือ ใช้ในวงแลน หรือใช้ส่วนตัว ก็สาารถติดตั้งเว็บ Server เช่น PHP หรือ ASP ได้ครับ ก็สามารถเขียน HTML ได้เช่นกัน

อ้อมีอีกวิธีครับคือใช้ ActiveX ครับ แต่จะใช้งานบน IE ได้เท่านั้น ปัจจุบันไม่ค่อยนิยมแล้ว นอกจากเว็บไซต์ของ Microsoft
1

อีกวิธีครับคือใช้ ActiveX ครับ แต่จะใช้งานบน IE ได้เท่านั้น ปัจจุบันไม่ค่อยนิยมแล้ว นอกจากเว็บไซต์ของ Microsoft
^
^
^
ใช้แบบนี้แหล่ะครับ เป็นงานที่เจ้านายสั่งมาอะครับ

ได้โค้ดมาจากเวบนอก
<script type="text/javascript">
var cn = new ActiveXObject("ADODB.Connection");
var strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:/test.mdb";
var rs = new ActiveXObject("ADODB.Recordset");
var SQL = "SELECT  FROM member";

cn.Open(strConn);
rs.Open(SQL, cn);
ID.value = rs(0);
Name.value = rs(1);
alert(rs(0));
rs.Close();
cn.Close();
</script>


แต่มันก็ใช้ไม่ได้ นิ่งสนิท ไม่ตอบสนองอะไรเลย

เฮ้อ  ผมก็ไม่รู้จะทำยังไงต่อไปแล้ว

คือเจ้านายบอกว่าอยากได้แบบไม่ต้องใช้ webserver

ขอบคุณล่วงหน้าครับ
2

จุดประสงค์ข้อ 1 ใช้ javascript อย่างเดียวติดต่อฐานข้อมูลรึ....(มันทำงานตัวเดียวไม่ได้)?
จุดประสงค์ข้อ 2 มันยังไงกันแน่.... ?แล้วจะรันสคริปฝั่ง server ได้อย่างไร...
จุดประสงค์ข้อ 3 มันก็สามารถรัน html โดยไม่ต้องทำ web server ได้อ่านะ แต่มันมีข้อจำกัดเยอะนะครับ
และถ้าจะใช้แบบออฟไลน์....จะเขียน html ทำไม ใช้ฟอร์มของ Access เลยไม่ดีกว่ารึ....

3

คงต้องบอกกับเจ้านายตรงๆแล้วล่ะครับ
4

ผมหมายถึงเขียน ActiveX ตรงๆครับ ซึ่งจะเรียกใช้บน HTML ได้ เหมือนเรียกใช้แฟลชครับ

แต่ความเป็นจริงแล้ว ถ้าไม่ได้เกี่ยวข้องอะำไรกับ Server การใช้ Application จะมีประสิทธิภาพดีกว่าครับ
5

ลองตรวจสอบดังต่อไปนี้ครับ

var strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:/test.mdb";

driver และ database ถูกติดตั้งอย่างถูกต้องหรือไม่

var SQL = "SELECT *  FROM member";

ตก * ใน query

ถ้าทั้ง 2 อย่างถูกต้อง ให้ตรวจสอบ ถ้าไม่มี Error ให้ตรวจสอบเวอร์ชั่นของ db ลองตรวจสอบการติดตั้ง Office ใหม่

ที่สำคัญ มันทำงานบน IE เท่านั้น
6

อ้อ ลืมบอกไป โค้ดด้านบนผมทดสอบแล้วทำงานได้นะครับ แต่ใช้จริงคงยากน่าดูเพราะว่าการจัดการแสดงข้อมูลด้วย Javascript ไม่ใช่เรื่องง่ายๆ
7

เจ้านายเค้าให้เปลี่ยนแล้วครับ
เป็นใช้ html+javascript กับ xml แทนครับ
หลักการเหมือนเดิมทุกอย่าง
เปลี่ยนเป็นบันทึกข้อมูลลงในไฟล์ xml แทน บันทึกต่อกันไปเรื่อยๆอะครับในไฟล์เดียวกัน
สามารถเรียกดู บันทึก แก้ไข ข้อมูลในไฟล์ xml ได้ โดยผ่าน javascript แล้วแสดงออกมาในรูปแบบ html

โดยรวมก็คือ สร้างฟอร์มรับข้อมูล พอกด submit ก็บันทึกลง xml(มีไฟล์เดียว จะ submit กี่ครั้งก็บันทึกลงไฟล์นี้ต่อกันไปตามลำดับ)
ประมาณนี้ครับ
ถ้าเป็นแบบนี้ทำได้ไหมครับ โดยที่ไม่ต้องใช้ webserver

แนะแนวทางให้หน่อยนะครับ


ขอบคุณมากๆครับ

8

ต้องการเก็บข้อมูลเป็น Xml หรอครับ ถ้ายังงั้นใช้ Javascript สร้าง Xml ได้
xml ก็คือการเก็บข้อมูลในลักษณะของ Xml หรือเก็บให้ถูกตาม มาตรฐาน เท่านั้นเอง อาจจะทำเหมือน กับ

ลองเอาไปดูนะครับ สงสัยแล้วถามแล้วกัน เป็นการดึงค่า จาก ตารางที่เป็น Html แล้วเอาค่ามาทำเป็น File xml โดยใช้ Php Create file แต่ คุณอาจจะใช้ Javascript Create ก็ได้นะครับลองหาวิธีดู

ส่วน Javascript

function xml_test(pForm)
{
    if(pForm == "1")
 {
     var inputs = Group_1.getElementsByTagName( 'input' );
   
     grap = document.getElementById("Graph");
     var path_xml ="x.xml";
     var para = "";
     para +="data="+ inputs.length +"&file_xml=" + path_xml;
     var path_graph = "show_graph2.php?";
     var tbo = document.getElementById("table1");
     
 }
 else
 {
     var inputs = Group_2.getElementsByTagName( 'input' );
     var path_xml ="x2.xml";
     var para = "";
     para +="data="+ inputs.length +"&file_xml=" + path_xml;
     grap = document.getElementById("Graph");
     var path_graph = "show_graph2.php?";
     var tbo = document.getElementById("table2");
     
     // var path_xml ="/Appserv/www/Project_5209/x2.xml";
 }
   
   
   
    var xml_code ="";
   
    var oTBody = tbo.tBodies[0];
    var oRows = oTBody.rows;
   
    for(var i = 0;i < oRows.length;i++)
    {
       
        xml_code +="<data>";           
        for(var j = 0;j < inputs.length; j++)
        {
            xml_code+="<data_item"+j+">"+oRows.cells[j].firstChild.nodeValue +"</data_item"+j+">";
        }
        xml_code +="</data>";
       
    }
   
    var xml_code = "<listData>"+xml_code+"</listData>";
    //document.getElementById("xml").value = xml_code;
   
       var req = Inint_AJAX();
    req.onreadystatechange = function () {
        if ( req.readyState == 4 && req.status == 200 ) {
            //popup('show');
            document.getElementById("lightboxImage").src=path_graph + "" + para;
                showLightbox();       
           

        //document.getElementById("xml").value = req.responseText;
        }
    }
    var query = "";
    query +="path="+ path_xml +"&data_xml=" + xml_code;
    req.open( "GET", "Create_file.php?" + query , true );
    req.send( null );
    return false;
   
   
    //var fso = new ActiveXObject("Scripting.FileSystemObject");
    //obj = fso.CreateTextFile(path_xml, true)
    //obj.writeline(xml_data);

    //obj.close();
   
   
    //alert(inputs.length);
}

ส่วน PHp ครับ
<?php
 
$strFileName = $_GET['path'];
$data_xml = "<?xml version='1.0'?>
".$_GET['data_xml'];


$objCreate = fopen($strFileName, 'w');
fwrite($objCreate,$data_xml );
fclose($objCreate);
//print $_GET['path'];
?>
9

แหม กำลังอยากได้ โค้ดเขียนไฟล์ xml อยู่พอดีเลยครับ

ขอบคุณครับ
10

ขอบคุณมากครับ แล้วจะลองใ้ช้ดู
11
^