Advertisement
nandordudas

TestDataObject

May 18th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Attribute VB_Name = "TestDataObject"
  2. Option Compare Database
  3. Option Explicit
  4.  
  5. Public Sub Run()
  6.  
  7.     On Error GoTo Catch
  8.  
  9.     Dim PDO As DataObject, Results As Object, Item As Variant, _
  10.         RoleName As String, ModuleName As String
  11.  
  12.     DoCmd.SetWarnings False
  13.  
  14.     ModuleName = VBE.ActiveCodePane.CodeModule.Name
  15.  
  16.     Application.SetOption "ANSI Query Mode", True
  17.  
  18.     DoCmd.RunSQL "CREATE TABLE tblRole (" & _
  19.         "RoleId AUTOINCREMENT(1, 1) CONSTRAINT PrimaryKey PRIMARY KEY, " & _
  20.         "RoleName VARCHAR NOT NULL, " & _
  21.         "Description VARCHAR, " & _
  22.         "CONSTRAINT RoleNamekey UNIQUE (RoleName))"
  23. '       tblErrorLog
  24. '       Id|3010|A következõ tábla már létezik: 'tblRole'.|Sub Run|TestDataObject
  25. '       NOW|Environ$("USERNAME")|Environ$("COMPUTERNAME")
  26.  
  27.     Set PDO = New DataObject
  28.  
  29.     With PDO
  30.         .Query = "INSERT INTO tblRole (RoleName) VALUES (:RoleName)"
  31.  
  32.         RoleName = CStr(Timer)
  33.  
  34.         .Bind ":RoleName", RoleName
  35.         .Bind ":RoleName", RoleName & RoleName
  36. '       tblErrorLog
  37. '       Id|-2147220991|Parameter exists [:RoleName]|Sub Bind|DataObject
  38. '       NOW|Environ$("USERNAME")|Environ$("COMPUTERNAME")
  39.  
  40.         .BeginTransaction
  41.  
  42.         .Execute
  43.  
  44.         If CBool(.AffectedRows) Then
  45.             Debug.Assert (1 = .AffectedRows)
  46.             .CommitTransaction
  47.         Else
  48.             .RollbackTransaction
  49.         End If
  50.  
  51.         .Query = "SELECT r.RoleName FROM tblRole r WHERE r.RoleName = :RoleName"
  52.  
  53.         .Bind ":Rolename", RoleName
  54.  
  55.         Set Results = .ResultSet
  56.  
  57.         If CBool(.RecordCount) Then _
  58.             Debug.Assert (RoleName = Results("RoleName"))
  59.  
  60.         .Query = "SELECT r.RoleName FROM tblRole r WHERE r.RoleId > :RoleId"
  61.  
  62.         .Bind ":RoleId", 1
  63.  
  64.         Set Results = .ResultSet
  65.  
  66.         If Not CBool(.RecordCount) Then GoTo Finally
  67.  
  68.         For Each Item In Results
  69.  
  70.             Debug.Print Results(Item)("RoleName")
  71.  
  72.             DoEvents
  73.         Next Item
  74.  
  75.     End With
  76.  
  77.     GoTo Finally
  78.  
  79. Catch:
  80.     Handle Err.Number, Err.Description, "", "Sub Run", ModuleName
  81.     Resume Next
  82.  
  83. Finally:
  84.     ModuleName = ""
  85.     Set PDO = Nothing
  86.     Set Results = Nothing
  87.     Application.SetOption "ANSI Query Mode", False
  88.     DoCmd.SetWarnings True
  89.  
  90. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement