VB6 Excel

轉載:http://www.dotblogs.com.tw/yc421206/archive/2009/01/07/6668.aspx

VB6與Excel本是同根生,核心架構都差不多,所以要用VB6讀寫Excel是相當方便的;唯一要特別注意,若 是要由VB控制Excel讀寫大量的資料,千萬不要用迴圈的方式一格一格讀寫,如果你那樣做的話,程式跑起來會很慢很慢,我知道兩種方式

1.引用Excwl Application,並用陣列進行資料寫讀;優 點,相當靈活等於是在操作Excel、效能佳(比不上OLEDB)。缺點,需要花時間瞭解Excel的物件模型

開啟Excel→按ALT+F11→按F1→此時會出現說明,若沒有出現表示沒安裝,快去裝吧→按Microsoft Excel 物件模型。就可以查詢Excel模型

2.引用OLEDB進行資料寫入讀出;優點,此法讀 寫資料是最快,效能最佳。缺點,但不靈活,有可能你不單單只是要讀寫資料

下圖為Excel模型

1

接下來就直接進入主題,

第一步:前期綁定 Excel,更方便的操作Excel,不用背模型語法(會有版本的問題,若擔心版本問題請採用後期綁定)

2 3

第二步:引用Excel

  '#一部電腦僅執行一個Excel Application, 就算中突開啟Excel也不會影響程式執行

  '#在工作管理員中只會看見一個EXCEL.exe在執行,不會浪費電腦資源

  '#引用正在執行的Excel Application

  Set xlApp = GetObject(, "Excel.Application")

  '#若發生錯誤表示電腦沒有Excel正在執行,需重新建立一個新的應用程式

  If Err <> 0 Then

    Err.Clear

    '#執行一個新的Excel Application

    Set xlApp = CreateObject("Excel.Application")

    If Err <> 0 Then

      MsgBox "電腦沒有安裝Excel"

      End

    End If

  End If

 

第三步:讀寫Excel

  '#Excel活頁簿設定

  '===================================================

  '打開已經存在的EXCEL工件簿文件

  Set xlBook = xlApp.Workbooks.Open(App.Path & "\" & "Sample.xlt")

  '停用警告訊息

  xlApp.DisplayAlerts = False

  '設置EXCEL對象可見

  xlApp.Visible = True

  '設定活頁簿為焦點

  xlBook.Activate

  '顯示第一個子視窗

  xlBook.Parent.Windows(1).Visible = True

  '引用第一個工作表

  Set xlSheet = xlBook.Worksheets(1)

  '設定工作表為焦點

  xlSheet.Activate

 

  '===================================================

  '#用Array寫資料至EXCEL

  Dim myRows As Long, myCols As Long

 

  myRows = UBound(DataArray, 1)

  myCols = UBound(DataArray, 2)

  '選擇儲存格範圍

  xlSheet.Range(cells(2, 1), cells(myCols, myRows)).Select

  '陣列一次寫入Excel

  xlSheet.Range(cells(2, 1), cells(myCols, myRows)).Value = xlApp.Transpose(DataArray)

  '呼叫Excel巨集

  xlApp.Run ("Sample.xlt" & "!Caculater")

  '另存新檔

  xlBook.SaveAs App.Path & "\" & "TETS.XLS"

  '關閉EXCEL

  xlApp.Quit

 

Excel 的功能太多了,無法詳細敘述,請參考之前在網路上整理的EXCEL VBA語法[VBA] Excel VBA 指令

範例下載:VB6讀 EXCEL.rar

3D 互動 展示

3D 展示 互動

 

大侑貿易有限公司

 

(請點選 運轉 即可看到) – 這東西 跟我先前同學給我看的 初音很類似 不過當初沒看到互動 就沒有太注意下去

 

製作者是

EKI (網繹數位科技)

以上應該是我們專題能用上的部分

以下 是我其餘找到的一些 相關網站資訊

請看看 尤其交大的 做的還不錯

又開了個眼界^^

交大的網站 原來這麼的Cool害我的3D學校 整個有點小遜色呢… 可以加油看看^^

這個才叫做找資料…原來這種東西叫做

3D互動展示

關鍵字的拼法 還真的是很重要…

至於3D Flash 也是解決的方法之一 不過似乎 不多人用

其餘相關軟體 知識+ http://tw.knowledge.yahoo.com/question/question?qid=1609122908312

3D Flash 知識+ http://tw.knowledge.yahoo.com/question/question?qid=1609071502066

SQL 數字排序

SQL排序不就是order by 怎麼還會有數字排序?

當然就是有問題,還真是怪呢!廢話不多說,看個範例

假設有一database 有一欄數字的欄位number(型態:varchar),1,-2,2,10然後對這欄的數字作排序

SQL語法:

select mumber from table order by mumber

結果:

1

10

-2

2

怎麼變成這樣,不是我要的答案啦!所以就要用cast啦!

SQL語法:

select mumber from table order by cast(mumber as unsigned)

結果:

1

-2

2

10

呃~還是不一樣!因為unsigned是不包含負號下去排序,所以改成signed

SQL語法:

select mumber from table order by cast(mumber as signed)

結果:

-2

1

2

10

[PHP]PHP做圖 – 長條圖

範例位址:點我連結

修改出處:http://big5.webasp.net/article/7/6036.htm

增加的功能是 破千的數長度下降

<? $b = array(9,1500,500,1250,300,200,775,1230,550); ?>

<!–規則: (組數,數值1,數值2…) –>

<html>

<head>

<title>直 條圖製作</title>

<style>

<!–

td{ font-size:9pt }

–>

</style>

</head>

<body>

<?

$t=1;

$tt=1;

for($i=1;$i<$b[0];$i++) {

 for($j=1;$j<10;$j++) {

  if(($b[$i]/$tt)/10>100 and $tt*10>$t and $b[$i]!=0){

   $t=$t*10;

   $tt=$tt*10;

  }

 }

}

?>

<table border=0>

 <tr><td colspan="<?echo $b[0];?>"><p align="center">(1)直條圖</p></td></tr>

 <tr valign="bottom">

    <?for($i=1;$i<$b[0];$i++) { ?><td align="center">

      <table height="<?echo $b[$i]/$t;?>" border=0>(2)<?echo $b[$i];?>

        <tr>

          <td bgcolor="#3F7F9F" width="40"></td>(3)點

        </tr>

      </table><br>

<font color="#3F7F9F"><?echo $b[$i];?></font>(4)

    </td><? } ?>

  </tr>

</table>

</body>

</html>

Access 遮罩

<style>

</style>

輸入遮罩使用符號:

符號

意義

選擇性輸入

範例

顯示結果

0

只能輸入數字0-9

000

123

#

可輸入數字0-9或空白,

且可輸入「+」與「-」,

但若輸入遮罩的符號不被儲存,

則儲存時空白會被取消

####

+23

9

可輸入數字0-9或空白,

但不可輸入「+」與「-」

99\-999

12-3

L

可輸入字母A-Z

LL\.0000

NO.0012

?

可輸入字母A-Z

???\.0000

NO.0012

A

可輸入字母A-Z與數字0-9

AAAA

Z123

a

可輸入字母A-Z與數字0-9

aaaa

z123

&

可輸入任何字元與空白

&&&&&&

A-021

&L000000

B123456

C

可輸入任何字元與空白

CCCCC

A-021

\

顯示後面這個字元

 

00\?00

12?12

. , :
– /

小數點定位與千位、

日期及時間的分隔符號,

實際使用的字元,

將以windows中控制台的

地區及語言選項對話盒

內地區選項頁之設定

 

 

 

>

強迫右邊的字母變大寫

 

>????

Html

<

強迫右邊的字母變小寫

 

<????

html

!

使輸入遮罩從右到左顯示,

而不從左到右顯示。

鍵入遮罩中的字元

始終從左到右填滿遮罩。

可在入遮罩的任何地方

加入驚嘆號

 

!????

__jo

輸入二個空白

輸入遮罩的語法與自訂格式語法類似,一樣是以";"符號分隔區段。

      區段一;區段二; 區段三

區段一用於定義輸入遮罩。

區段二的值有兩個:1與0,1表示輸入遮罩的符號與輸入的資料一併儲存,0表示只存儲輸入的字元。

若不設定,表示只儲存輸入的字元。

區段三表示要用什麼符號做定位器字元,若未輸入則沒有定位器字元

常見的輸入遮罩格式設定:

輸入遮罩設定

適用情形

輸入值

儲存值

>L000000000

身份證字號

B123456789

B123456789

\(00#\)000#\-000#;0;*

通用的電話號碼輸入遮罩

(035)123-456

(035)123-456

(07)123-4567

(07)123-4567

(02)2123-4567

(02)2123-4567

\(00#\)000#\-000#

通用的電話號碼輸入遮罩,

但輸入時空白會被後面的數字遞補

(035)123-456

03123456(註)

(07)123-4567

(07)1234567(註)

(02)2123-4567

021234567(註)

&L000000

運人身份證字號

B123456

B123456

"NO".0000

產品編號

NO.0012

0012(註)

註:此為資料表的實際儲存,非顯示值,顯示值將包含輸入遮罩使用的格式符號

PHP 留言版 MySQL

PHP 留言版 MySQL

PHP網頁架設的簡易留言版

#

# 資料庫: `test`

#

# ——————————————————–

#

# 資料表格式: `id`

#

CREATE TABLE `id` (

  `id` int(11) NOT NULL default '0',

  `name` char(20) NOT NULL default '',

  KEY `id` (`id`)

) TYPE=MyISAM;

#

# 列出以下資料庫的數據: `id`

#

INSERT INTO `id` VALUES (1, '小毛便利組');

# ——————————————————–

#

# 資料表格式: `text`

#

CREATE TABLE `text` (

  `name` char(20) default NULL,

  `text` char(255) NOT NULL default ''

) TYPE=MyISAM;

#

# 列出以下資料庫的數據: `text`

#

INSERT INTO `text` VALUES ('系統設計者', '歡迎使用小毛做的留言版');

INSERT INTO `text` VALUES ('系統設計者', '測試');

INSERT INTO `text` VALUES ('HeChian', 'Orz');

# ——————————————————–

#============================================================

index.php

# ——————————————————–

<?php  //一、連結資料庫

  //建立連線:

  @$link = mysql_pconnect("localhost", "root", "");

  //選擇資料庫:

  @mysql_select_db("test") or die("無法選擇資料庫");

 

  //二、執行SQL語法

  // 建立SQL語法

  @$query = "SELECT * FROM text";

 

  //送出SQL語法到資料庫系統

  @$result = mysql_query($query) or die("無法送出" . mysql_error( ));

 

  // 三、取得執行SQL語法後的結果 (指查詢部份)

  while ( $row = mysql_fetch_array($result) ) {

    echo

"<table border='1' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='50%' id='AutoNumber1'>

   <tr>

    <td width='50%'>" .$row['name']. "</td>

    <td width='50%'>" .$row['text']. "</td>

  </tr>

</table>";

  }

 

  //四、釋放與Mysql的連線

  @mysql_free_result($result);

?>

<form name="form1" method="post" action="index1.php">

<p>姓名: <input name="name" type="text" id="name" size="20"></p>

<p>留言: <input name="text" type="text" id="text" size="20"></p>

<p> <input type="submit" name="Submit" value="送出"> <input type="reset" name="Submit2" value="重設"></p>

</form>

# ——————————————————–

#============================================================

index2.php

# ——————————————————–

<?php

  //建立連線:

  @$link = mysql_pconnect("localhost", "root", "");

  //選擇資料庫:

  @mysql_select_db("test") or die("無法選擇資料庫");

 

  //二、執行SQL語法

  // 建立SQL語法

  @$query = "INSERT INTO `text` VALUES ('$name','$text');";

 

  //送出SQL語法到資料庫系統

  @$result = mysql_query($query) or die("無法送出" . mysql_error( ));

 

  // 三、取得執行SQL語法後的結果 (指查詢部份)

  /*while ( $row = mysql_fetch_array($result) ) {

    echo

"<table border='1' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='50%' id='AutoNumber1'>

   <tr>

    <td width='50%'>" .$row['name']. "</td>

    <td width='50%'>" .$row['text']. "</td>

  </tr>

</table>";

  }*/

 

  //四、釋放與Mysql的連線

  @mysql_free_result($result);

echo

"<form name='form1' method='post' action='index.php'>".

"預覽! <BR>"."姓名: $name <BR>"."留言: $text <BR>".

"<p> <input type='submit' name='Submit' value='回上頁'></p>

</form>";

?>

# ——————————————————–

#============================================================