ronjonp 发表于 2008-11-20 12:17:18

读取和写入Access 2007(accdb文件)

我通常不要求施舍...但今天我是.是否有人有一些示例代码(最好是vbs)来打开数据库,从特定列中读取单元格,并将图像附加到另一个单元格(图像名称对应于读取的第一个单元格)?
这看起来像是我需要走的方向,但我通常很迷茫:丑陋:在lisp语言之外。
http://msdn.microsoft.com/en-us/library/bb257442.aspx
任何帮助将不胜感激。
*附例...需要从结构ID列中读取数据,并使用回形针图标将照片附加到最后一列。
谢谢,
罗恩
**** Hidden Message *****

deegeecees 发表于 2008-11-20 14:03:14

如果你愿意,你可以把它拆开。我使用DAO链接到数据库。
Option Explicit
    Public Tatts As Variant
    Public ssnew_is As Object
    Const DATABASE_DIR = "q:\std\drafting_db\"
    Dim db As DAO.Database
Sub CaddReq()
Dim Projdia As String
Dim Caddr As String
Dim Filenm As String
Dim EntGrp(0) As Integer
Dim EntPrp(0) As Variant
Dim BlkObj As Object
Dim Pt1(0) As Double
Dim Pt2(0) As Double
Dim objSelSet As AcadSelectionSet
Dim objSelCol As AcadSelectionSets
    Set objSelCol = ThisDrawing.SelectionSets
    For Each objSelSet In objSelCol
      If objSelSet.Name = "db4_block" Then
            objSelSet.Delete
            Exit For
      End If
    Next
    Call str_test
    Set ssnew_is = ThisDrawing.SelectionSets.Add("db4_block")
    EntGrp(0) = 2
    EntPrp(0) = "drafting_db_block"
    ssnew_is.Select acSelectionSetAll, Pt1, Pt2, EntGrp, EntPrp
    If ssnew_is.Count >= 1 Then
    Call cadreq_str
      Tatts = ssnew_is.Item(0).GetAttributes
      Filenm = (LTrim(Tatts(2).TextString))
    Set db = DAO.OpenDatabase(DATABASE_DIR & "drafting_db_oldver.mdb", False, False)
    Dim rs As DAO.Recordset
      Set rs = db.OpenRecordset( _
      "SELECT * FROM CaddReqTrack WHERE File_Path = '" _
      & D_path & "' AND FileName = '" & Filenm & "' AND Cadd_Req = '" & cad_req & "'")
    If (rs.RecordCount > 0) Then
      rs.Edit
      rs.Fields("Drawing_Name") = (LTrim(Tatts(3).TextString))
      rs.Fields("Station") = (LTrim(Tatts(4).TextString))
      rs.Fields("Location") = (LTrim(Tatts(5).TextString))
      rs.Fields("Description") = (LTrim(Tatts(6).TextString))
      rs.Fields("Dwg_Scale") = (LTrim(Tatts(7).TextString))
      rs.Fields("Rev_CE") = (LTrim(Tatts(8).TextString))
      rs.Fields("Date_CE") = (LTrim(Tatts(9).TextString))
      rs.Fields("Rev_Desc_CE") = (LTrim(Tatts(10).TextString))
      rs.Fields("Drawn_By_CE") = (LTrim(Tatts(11).TextString))
      rs.Fields("Eng_By_CE") = (LTrim(Tatts(12).TextString))
      rs.Fields("Rev_GE") = (LTrim(Tatts(13).TextString))
      rs.Fields("Date_GE") = (LTrim(Tatts(14).TextString))
      rs.Fields("Rev_Desc_GE") = (LTrim(Tatts(15).TextString))
      rs.Fields("Drawn_By_GE") = (LTrim(Tatts(16).TextString))
      rs.Fields("Eng_By_GE") = (LTrim(Tatts(17).TextString))
      rs.Fields("D_Code") = (LTrim(Tatts(18).TextString))
      rs.Fields("S_Code") = (LTrim(Tatts(19).TextString))
      rs.Update
    Else
      rs.AddNew
      rs.Fields("Cadd_Req") = cad_req
      rs.Fields("Filename") = (LTrim(Tatts(2).TextString))
      rs.Fields("Drawing_Name") = (LTrim(Tatts(3).TextString))
      rs.Fields("Station") = (LTrim(Tatts(4).TextString))
      rs.Fields("Location") = (LTrim(Tatts(5).TextString))
      rs.Fields("Description") = (LTrim(Tatts(6).TextString))
      rs.Fields("Dwg_Scale") = (LTrim(Tatts(7).TextString))
      rs.Fields("Rev_CE") = (LTrim(Tatts(8).TextString))
      rs.Fields("Date_CE") = (LTrim(Tatts(9).TextString))
      rs.Fields("Rev_Desc_CE") = (LTrim(Tatts(10).TextString))
      rs.Fields("Drawn_By_CE") = (LTrim(Tatts(11).TextString))
      rs.Fields("Eng_By_CE") = (LTrim(Tatts(12).TextString))
      rs.Fields("Rev_GE") = (LTrim(Tatts(13).TextString))
      rs.Fields("Date_GE") = (LTrim(Tatts(14).TextString))
      rs.Fields("Rev_Desc_GE") = (LTrim(Tatts(15).TextString))
      rs.Fields("Drawn_By_GE") = (LTrim(Tatts(16).TextString))
      rs.Fields("Eng_By_GE") = (LTrim(Tatts(17).TextString))
      rs.Fields("D_Code") = (LTrim(Tatts(18).TextString))
      rs.Fields("S_Code") = (LTrim(Tatts(19).TextString))
      rs.Fields("File_Path") = D_path
      rs.Update
    End If
    rs.Close
    Set rs = Nothing
    db.Close
    Set db = Nothing
    ThisDrawing.PurgeAll
    End If
End Sub

ronjonp 发表于 2008-11-20 15:29:44

谢谢...我去看看。
页: [1]
查看完整版本: 读取和写入Access 2007(accdb文件)