Transcript
Page 1: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

Komandas ar parametriem izpilde un datu pārrakstīšana tabulā (MS Access 2003)

Public Sub Kom_ar_param_izp_un_datu_parrakst()Dim savienojums As ADODB.ConnectionSet savienojums = New ADODB.Connection Dim komanda As ADODB.CommandSet komanda = New ADODB.Command

Dim rakstu_kopa As ADODB.Recordset Dim teksta_rinda As String

savienojums.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _"Data Source=G:\Eiduks\DB_tehnologija\ADO\ADO_piem_1\DB_Mazpilsetas.mdb;"Set komanda.ActiveConnection = savienojums

teksta_rinda = "SELECT A.MAZ_NOS, B.GADS, B.SKAITS " _ & "FROM MAZPILSETAS A, MAZP_IEDZ_SKAITS B " _ & "WHERE A.ID_M = B.ID_M AND " _ & "A.RAJONS = ? AND B.GADS = ?"komanda.CommandText = teksta_rinda

Set parametrs_1 = komanda.CreateParameter _ (Name:="A.RAJONS", Type:=adChar, Direction:= _ adParamInput, Size:=30, Value:="Rīgas")

Set parametrs_2 = komanda.CreateParameter _ (Name:="B.GADS", Type:=adInteger, Direction:= _ adParamInput, Size:=2, Value:=2000)

komanda.Parameters.Append parametrs_1komanda.Parameters.Append parametrs_2

Dim cik_raksti As LongDim m_1 As Stringm_1 = "Talsu"Dim m_2 As Integerm_2 = 2001

Set rakstu_kopa = komanda.Execute(Parameters:=Array(m_1, m_2), _

1

Page 2: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

Options:=adCmdText)

'Jaunas rakstu kopas izveidošana (rakstu_kopa_1) Dim savienojums_1 As ADODB.Connection Set savienojums_1 = New ADODB.Connection Set savienojums_1 = CurrentProject.Connection

Dim rakstu_kopa_1 As New ADODB.Recordset rakstu_kopa_1.Open "SELECT * FROM MAZPILS", _ savienojums_1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otrāDo Until rakstu_kopa.EOF rakstu_kopa_1.AddNew rakstu_kopa_1!MAZ_NOS = rakstu_kopa!MAZ_NOS rakstu_kopa_1!GADS = rakstu_kopa!GADS rakstu_kopa_1!SKAITS = rakstu_kopa!SKAITS rakstu_kopa_1.Update rakstu_kopa.MoveNextLoopSet savienojums = NothingSet savienojums_1 = NothingEnd Sub

2

Page 3: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

' Komandas ar parametriem izpilde un datu pārrakstīšana citā kopā Public Sub Komandas_ar_parametriem_izpilde_un_datu_parrakstisana() Dim savienojums As ADODB.Connection Set savienojums = New ADODB.Connection Dim komanda As ADODB.Command Set komanda = New ADODB.Command Dim rakstu_kopa As ADODB.Recordset Dim teksta_rinda As String savienojums.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=G:\Eiduks\DB_tehnologija\ADO\ADO_piem_1\DB_Mazpilsetas.mdb;" teksta_rinda = "SELECT A.MAZ_NOS, B.GADS, B.SKAITS " _ & "FROM MAZPILSETAS A, MAZP_IEDZ_SKAITS B " _ & "WHERE A.ID_M = B.ID_M AND " _ & "A.RAJONS = ? AND B.GADS = ?" Set komanda.ActiveConnection = savienojums komanda.CommandText = teksta_rinda Set parametrs_1 = komanda.CreateParameter _ (Name:="A.RAJONS", Type:=adChar, Direction:= _ adParamInput, Size:=30, Value:="Rīgas") Set parametrs_2 = komanda.CreateParameter _ (Name:="B.GADS", Type:=adInteger, Direction:= _ adParamInput, Size:=2, Value:=2000) komanda.Parameters.Append parametrs_1 komanda.Parameters.Append parametrs_2 Dim cik_raksti As Long Dim m_1 As String m_1 = "Talsu" Dim m_2 As Integer m_2 = 2001 Set rakstu_kopa = komanda.Execute(Parameters:=Array(m_1, m_2), _ Options:=adCmdText) 'Jaunas rakstu kopas izveidošana un datu pārrakstīšana šajā kopā Dim savienojums_1 As ADODB.Connection Set savienojums_1 = New ADODB.Connection Set savienojums_1 = CurrentProject.Connection Dim komanda_1 As ADODB.Command Set komanda_1 = New ADODB.Command Dim rakstu_kopa_1 As ADODB.Recordset Dim teksta_rinda_1 As String teksta_rinda_1 = "MAZPILS" komanda_1.CommandText = teksta_rinda_1 komanda_1.CommandType = adCmdTable Set komanda_1.ActiveConnection = savienojums_1 Set rakstu_kopa_1 = komanda_1.Execute Set rakstu_kopa_1 = rakstu_kopa Do Until rakstu_kopa_1.EOF Debug.Print rakstu_kop a_1.Fields("MAZ_NOS").Value rakstu_kopa_1.MoveNext Loop Set savienojums = Nothing Set savienojums_1 = NothingEnd Sub

3

Page 4: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

LielpilsetasID_L TIPS NOSAUKUMS GADS RAJONS DZIMUMS IEDZ_SKAITS DARB_TIPS

1 lielpilsēta Daugavpils 2001Daugavpils sieviete 9490zem2 lielpilsēta Daugavpils 2001Daugavpils sieviete 13638virs3 lielpilsēta Daugavpils 2001Daugavpils sieviete 39721darbinieks4 lielpilsēta Daugavpils 2001Daugavpils vīrietis 7796zem5 lielpilsēta Daugavpils 2001Daugavpils vīrietis 11204virs6 lielpilsēta Daugavpils 2001Daugavpils vīrietis 32631darbinieks7 lielpilsēta Daugavpils 2002Daugavpils sieviete 9401zem8 lielpilsēta Daugavpils 2002Daugavpils sieviete 13511virs9 lielpilsēta Daugavpils 2002Daugavpils sieviete 39349darbinieks

10 lielpilsēta Daugavpils 2002Daugavpils vīrietis 7723zem11 lielpilsēta Daugavpils 2002Daugavpils vīrietis 11099virs12 lielpilsēta Daugavpils 2002Daugavpils vīrietis 32325darbinieks13 lielpilsēta Jelgava 2001Jelgavas sieviete 5599zem14 lielpilsēta Jelgava 2001Jelgavas sieviete 7338virs15 lielpilsēta Jelgava 2001Jelgavas sieviete 21839darbinieks16 lielpilsēta Jelgava 2001Jelgavas vīrietis 4789zem17 lielpilsēta Jelgava 2001Jelgavas vīrietis 6276virs

4

Page 5: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

5

Page 6: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

'Rakstu kopas izguve no MS Excel darba grāmatas (Lielpilsetas.xls)'lapas tabulas (Tabula_Lielpisetas)ar parametrizētu vaicājumu

Public Sub Vaicajums_Excel_tabulai() Dim savienojums_e As ADODB.Connection Set savienojums_e = New ADODB.Connection Dim komanda_e As ADODB.Command Set komanda_e = New ADODB.Command Dim rakstu_kopa_e As ADODB.Recordset Set rakstu_kopa_e = New ADODB.Recordset Dim teksta_rinda_e As String savienojums_e.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=G:\Eiduks\DB_tehnologija" & _ "\ADO\ADO_piem_1\Lielpilsetas.xls; " & _ "Extended Properties=Excel 8.0;" teksta_rinda_e = "SELECT NOSAUKUMS, GADS, RAJONS, DZIMUMS, " _ & "IEDZ_SKAITS, DARB_TIPS FROM Tabula_Lielpilsetas " _ & "WHERE RAJONS = ? AND DZIMUMS = ? AND GADS = ? " Set komanda_e.ActiveConnection = savienojums_e komanda_e.CommandText = teksta_rinda_e Set parametrs_1 = komanda_e.CreateParameter _ (Name:="RAJONS", Type:=adVariant, Direction:= _ adParamInput, Value:="Rīgas") Set parametrs_2 = komanda_e.CreateParameter _ (Name:="DZIMUMS", Type:=adVariant, Direction:= _ adParamInput, Value:="sieviete") Set parametrs_3 = komanda_e.CreateParameter _ (Name:="GADS", Type:=adInteger, Direction:= _ adParamInput, Value:=2002) komanda_e.Parameters.Append parametrs_1 komanda_e.Parameters.Append parametrs_2 komanda_e.Parameters.Append parametrs_3 Dim m_1 As String m_1 = "Rīgas" Dim m_2 As String m_2 = "sieviete" Dim m_3 As Integer m_3 = 2002 Set rakstu_kopa_e = komanda_e.Execute( _ Parameters:=Array(m_1, m_2, m_3), Options:=adCmdText)

'Rakstu kopas vērtību izvades varianti'Do Until rakstu_kopa_e.EOF' Debug.Print rakstu_kopa_e.Fields("NOSAUKUMS").Value' Debug.Print rakstu_kopa_e.Fields("GADS").Value' Debug.Print rakstu_kopa_e.Fields("RAJONS").Value' Debug.Print rakstu_kopa_e.Fields("DZIMUMS").Value' Debug.Print rakstu_kopa_e.Fields("IEDZ_SKAITS").Value' Debug.Print rakstu_kopa_e.Fields("DARB_TIPS").Value' rakstu_kopa_e.MoveNext' Loop' rakstu_kopa_e.MoveFirst

6

Page 7: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

Dim lauks_e As ADODB.Field Do Until rakstu_kopa_e.EOF For Each lauks_e In rakstu_kopa_e.Fields Debug.Print lauks_e.Value & ";"; Next Debug.Print rakstu_kopa_e.MoveNext Loop savienojums_e.CloseEnd Sub

7

Page 8: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

MS Access datu bāze DB_Mazpilsetas.mdb

MazpilsetasNUM ID_M MAZ_NOS RAJONS

1 1Aizkraukle Aizkraukles2 2Jaunjelgava Aizkraukles3 3Pļaviņas Aizkraukles4 4Alūksne Alūksnes5 5Ape Alūksnes6 6Balvi Balvu7 7Viļaka Balvu8 8Bauska Bauskas9 9Cēsis Cēsu10 10Līgatne Cēsu11 11 Ilūkste Daugavpils12 12Subate Daugavpils

Mazp_iedz_skaitsNUM ID_M GADS SKAITS

1 1 2000 90992 1 2001 90593 1 2002 89364 2 2000 24005 2 2001 23846 2 2002 23477 3 2000 40738 3 2001 40379 3 2002 3978

10 4 2000 948211 4 2001 948812 4 2002 944813 5 2000 208814 5 2001 205815 5 2002 203116 6 2000 865517 6 2001 854518 6 2002 840419 7 2000 185020 7 2001 184921 7 2002 185922 8 2000 1084023 8 2001 1084524 8 2002 1061725 9 2000 18732

8

Page 9: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

'Rakstu kopas izguve no citas MS Access datu bāzes DB_Mazpilstas.mdb,'no tabulām MAZPILSETAS un MAZP_IEDZ_SKAITS

Public Sub Vaicajums_Access_DB() Dim savienojums_a As ADODB.Connection Set savienojums_a = New ADODB.Connection Dim komanda_a As ADODB.Command Set komanda_a = New ADODB.Command Dim rakstu_kopa_a As ADODB.Recordset Dim teksta_rinda_a As String savienojums_a.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=G:\Eiduks\DB_tehnologija\ADO\ADO_piem_1\DB_Mazpilsetas.mdb;" teksta_rinda_a = "SELECT A.MAZ_NOS, A.RAJONS, B.GADS, " _ & "B.SKAITS " _ & "FROM MAZPILSETAS A, MAZP_IEDZ_SKAITS B " _ & "WHERE A.ID_M = B.ID_M AND " _ & "A.RAJONS = ? AND B.GADS = ?" Set komanda_a.ActiveConnection = savienojums_a komanda_a.CommandText = teksta_rinda_a Set parametrs_1 = komanda_a.CreateParameter _ (Name:="A.RAJONS", Type:=adChar, Direction:= _ adParamInput, Size:=30, Value:="Rīgas") Set parametrs_2 = komanda_a.CreateParameter _ (Name:="B.GADS", Type:=adInteger, Direction:= _ adParamInput, Size:=2, Value:=2000) komanda_a.Parameters.Append parametrs_1 komanda_a.Parameters.Append parametrs_2 Dim m_1 As String m_1a = "Talsu" Dim m_2 As Integer m_2a = 2001 'parametrs_1.Value = m_1a Set rakstu_kopa_a = komanda_a.Execute(Parameters:=Array(m_1a, m_2a), _ Options:=adCmdText) 'Rakstu kopas pārrakstīšana citā rakstu kopā Dim rakstu_kopa_1 As ADODB.Recordset Set rakstu_kopa_1 = rakstu_kopa_a 'Nedrīkst atslēgt savienojumu: savienojums_a.Close 'Rakstu kopas vērtību izvades varianti'Do Until rakstu_kopa_a.EOF' Debug.Print rakstu_kopa_a.Fields("MAZ_NOS").Value' Debug.Print rakstu_kopa_a.Fields("RAJONS").Value' Debug.Print rakstu_kopa_a.Fields("GADS").Value' Debug.Print rakstu_kopa_a.Fields("SKAITS").Value' rakstu_kopa_a.MoveNext' Loop' rakstu_kopa_a.MoveFirst

9

Page 10: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

Dim lauks_a As ADODB.Field Do Until rakstu_kopa_a.EOF For Each lauks_a In rakstu_kopa_1.Fields Debug.Print lauks_a.Value & ";"; Next Debug.Print rakstu_kopa_a.MoveNext LoopSet savienojums_a = NothingEnd Sub

10

Page 11: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

'Tabulas veidošana centrālajā datu bāzē (DB_Centrs), no kurienes'lietotājs veic savu darbību'Jāpievieno bibliotēka: Microsoft ADO Ext.2.6.for DDL and Security

Sub Tabulas_veidosana()Dim komanda_v As ADODB.CommandSet komanda_v = New ADODB.CommandDim tab_izv_teksts As Stringtab_izv_teksts = "CREATE TABLE MAZPILSETAS_C(MAZ_NOS VARCHAR(30), " _ & "RAJONS VARCHAR(30), GADS INTEGER, SKAITS INTEGER);"Dim savienojums_ar_akt_DB As New ADODB.ConnectionSet savienojums_ar_akt_DB = CurrentProject.Connection'savienojums_ar_citu_DB.Open _'"Provider=Microsoft.Jet.OLEDB.4.0;" & _'"Data Source=G:\Eiduks\DB_tehnologija\ADO\ADO_piem_1\DB_Mazpilsetas.mdb;"komanda_v.CommandText = tab_izv_tekstsSet komanda_v.ActiveConnection = savienojums_ar_akt_DBkomanda_v.ExecuteSet savienojums_v = NothingEnd Sub

11

Page 12: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

'Datu izgūšana no ārējas datu bāzes (DB_Mazpilsetas.mdb)'un ierakstīšana izveidotajā tabulā centrālajā DB

Public Sub Datu_izg_un_ierakst() Dim savienojums As ADODB.Connection Set savienojums = New ADODB.Connection Dim komanda As ADODB.Command Set komanda = New ADODB.Command Dim rakstu_kopa As ADODB.Recordset Dim teksta_rinda As String savienojums.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=G:\Eiduks\DB_tehnologija\ADO\ADO_piem_1\DB_Mazpilsetas.mdb;" teksta_rinda = "SELECT A.MAZ_NOS, B.GADS, B.SKAITS " _ & "FROM MAZPILSETAS A, MAZP_IEDZ_SKAITS B " _ & "WHERE A.ID_M = B.ID_M AND " _ & "A.RAJONS = ? AND B.GADS = ?" Set komanda.ActiveConnection = savienojums komanda.CommandText = teksta_rinda Set parametrs_1 = komanda.CreateParameter _ (Name:="A.RAJONS", Type:=adChar, Direction:= _ adParamInput, Size:=30, Value:="Rīgas") Set parametrs_2 = komanda.CreateParameter _ (Name:="B.GADS", Type:=adInteger, Direction:= _ adParamInput, Size:=2, Value:=2000) komanda.Parameters.Append parametrs_1 komanda.Parameters.Append parametrs_2 Dim m_1 As String m_1 = "Talsu" Dim m_2 As Integer m_2 = 2001 Set rakstu_kopa = komanda.Execute(Parameters:=Array(m_1, m_2), _ Options:=adCmdText) 'Jaunas rakstu kopas izveidošana (rakstu_kopa_1) Dim savienojums_1 As ADODB.Connection Set savienojums_1 = New ADODB.Connection Set savienojums_1 = CurrentProject.Connection Dim rakstu_kopa_1 As New ADODB.Recordset rakstu_kopa_1.Open "SELECT * FROM MAZPILSETAS_C", _ savienojums_1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otrā Do Until rakstu_kopa.EOF rakstu_kopa_1.AddNew rakstu_kopa_1!MAZ_NOS = rakstu_kopa!MAZ_NOS rakstu_kopa_1!GADS = rakstu_kopa!GADS rakstu_kopa_1!SKAITS = rakstu_kopa!SKAITS rakstu_kopa_1.Update rakstu_kopa.MoveNext Loop Set savienojums = Nothing Set savienojums_1 = NothingEnd Sub

12

Page 13: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

13

Page 14: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

'Rakstu kopas izguve no MS Excel darba grāmatas (Lielpilsetas.xls)'lapas tabulas (Tabula_Lielpisetas)ar parametrizētu vaicājumu'un ierakstīšana centrālajā DB tabulā LIELPILSETAS_C

Public Sub Vaicajums_Excel_tabulai_ar_ieraksti_tabula() Dim savienojums_e As ADODB.Connection Set savienojums_e = New ADODB.Connection Dim komanda_e As ADODB.Command Set komanda_e = New ADODB.Command Dim rakstu_kopa_e As ADODB.Recordset Set rakstu_kopa_e = New ADODB.Recordset Dim teksta_rinda_e As String savienojums_e.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=G:\Eiduks\DB_tehnologija" & _ "\ADO\ADO_piem_1\Lielpilsetas.xls; " & _ "Extended Properties=Excel 8.0;" teksta_rinda_e = "SELECT NOSAUKUMS, GADS, RAJONS, DZIMUMS, " _ & "IEDZ_SKAITS, DARB_TIPS FROM Tabula_Lielpilsetas " _ & "WHERE RAJONS = ? AND DZIMUMS = ? AND GADS = ? " Set komanda_e.ActiveConnection = savienojums_e komanda_e.CommandText = teksta_rinda_e Set parametrs_1 = komanda_e.CreateParameter _ (Name:="RAJONS", Type:=adVariant, Direction:= _ adParamInput, Value:="Rīgas") Set parametrs_2 = komanda_e.CreateParameter _ (Name:="DZIMUMS", Type:=adVariant, Direction:= _ adParamInput, Value:="sieviete") Set parametrs_3 = komanda_e.CreateParameter _ (Name:="GADS", Type:=adInteger, Direction:= _ adParamInput, Value:=2002) komanda_e.Parameters.Append parametrs_1 komanda_e.Parameters.Append parametrs_2 komanda_e.Parameters.Append parametrs_3 Dim m_1 As String m_1 = "Rīgas" Dim m_2 As String m_2 = "sieviete" Dim m_3 As Integer m_3 = 2002 Set rakstu_kopa_e = komanda_e.Execute( _ Parameters:=Array(m_1, m_2, m_3), Options:=adCmdText) 'Jaunas rakstu kopas izveidošana (rakstu_kopa_1) Dim savienojums_e1 As ADODB.Connection Set savienojums_e1 = New ADODB.Connection Set savienojums_e1 = CurrentProject.Connection Dim rakstu_kopa_e1 As New ADODB.Recordset rakstu_kopa_e1.Open "SELECT * FROM LIELPILSETAS_C", _ savienojums_e1, adOpenForwardOnly, adLockOptimistic

14

Page 15: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

'Datu pārrakstīšana no vienas datu kopas otrā Dim lauks_e1 As ADODB.Field Dim lauks_e As ADODB.Field Do Until rakstu_kopa_e.EOF rakstu_kopa_e1.AddNew For Each lauks_e In rakstu_kopa_e.Fields For Each lauks_e1 In rakstu_kopa_e1.Fields If lauks_e.Name = lauks_e1.Name Then lauks_e1.Value = lauks_e.Value End If Next Next rakstu_kopa_e1.Update rakstu_kopa_e.MoveNext Loop Set savienojums_e = Nothing Set savienojums_e1 = NothingEnd Sub

15

Page 16: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

16

Page 17: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

17

Page 18: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

'Komandas ar parametriem izpilde un datu pārrakstīšana citā kopāPublic Sub Komandas_ar_parametriem_izpilde_un_datu_parrakstisana() Dim savienojums As ADODB.Connection Set savienojums = New ADODB.Connection Dim komanda As ADODB.Command Set komanda = New ADODB.Command Dim rakstu_kopa As ADODB.Recordset Dim teksta_rinda As String savienojums.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=G:\Eiduks\DB_tehnologija\ADO\ADO_piem_1\DB_Mazpilsetas.mdb;" teksta_rinda = "SELECT A.MAZ_NOS, B.GADS, B.SKAITS " _ & "FROM MAZPILSETAS A, MAZP_IEDZ_SKAITS B " _ & "WHERE A.ID_M = B.ID_M AND " _ & "A.RAJONS = ? AND B.GADS = ?" Set komanda.ActiveConnection = savienojums komanda.CommandText = teksta_rinda Set parametrs_1 = komanda.CreateParameter _ (Name:="A.RAJONS", Type:=adChar, Direction:= _ adParamInput, Size:=30, Value:="Rīgas") Set parametrs_2 = komanda.CreateParameter _ (Name:="B.GADS", Type:=adInteger, Direction:= _ adParamInput, Size:=2, Value:=2000) komanda.Parameters.Append parametrs_1 komanda.Parameters.Append parametrs_2 Dim cik_raksti As Long Dim m_1 As String m_1 = "Talsu" Dim m_2 As Integer m_2 = 2001 Set rakstu_kopa = komanda.Execute(Parameters:=Array(m_1, m_2), _ Options:=adCmdText) 'Jaunas rakstu kopas izveidošana un datu pārrakstīšana šajā kopā Dim savienojums_1 As ADODB.Connection Set savienojums_1 = New ADODB.Connection Set savienojums_1 = CurrentProject.Connection Dim komanda_1 As ADODB.Command Set komanda_1 = New ADODB.Command Dim rakstu_kopa_1 As ADODB.Recordset Dim teksta_rinda_1 As String teksta_rinda_1 = "MAZPILSETAS_C" komanda_1.CommandText = teksta_rinda_1 komanda_1.CommandType = adCmdTable Set komanda_1.ActiveConnection = savienojums_1 Set rakstu_kopa_1 = komanda_1.Execute Set rakstu_kopa_1 = rakstu_kopa Do Until rakstu_kopa_1.EOF Debug.Print rakstu_kopa_1.Fields("MAZ_NOS").Value rakstu_kopa_1.MoveNext Loop Set savienojums = Nothing Set savienojums_1 = NothingEnd Sub

18

Page 19: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

19

Page 20: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

Centrālās datu bāzes tabula Rajoni

20

Page 21: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

'Rakstu kopas izguve no citas MS Access datu bāzes DB_Mazpilstas.mdb,'no tabulām MAZPILSETAS un MAZP_IEDZ_SKAITS un ierakstīšana ‘jaunizveidotā (saskaņotā ) tabulā

Public Sub Izguve_ierakstisana() Dim savienojums_a As ADODB.Connection Set savienojums_a = New ADODB.Connection Dim komanda_a As ADODB.Command Set komanda_a = New ADODB.Command Dim rakstu_kopa_a As ADODB.Recordset Dim teksta_rinda_a As String savienojums_a.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=G:\Eiduks\DB_tehnologija\ADO\ADO_piem_1\DB_Mazpilsetas.mdb;" teksta_rinda_a = "SELECT A.MAZ_NOS, A.RAJONS, B.GADS, " _ & "B.SKAITS " _ & "FROM MAZPILSETAS A, MAZP_IEDZ_SKAITS B " _ & "WHERE A.ID_M = B.ID_M AND " _ & "A.RAJONS = ? AND B.GADS = ?" Set komanda_a.ActiveConnection = savienojums_a komanda_a.CommandText = teksta_rinda_a Set parametrs_1 = komanda_a.CreateParameter _ (Name:="A.RAJONS", Type:=adChar, Direction:= _ adParamInput, Size:=30, Value:="Rīgas") Set parametrs_2 = komanda_a.CreateParameter _ (Name:="B.GADS", Type:=adInteger, Direction:= _ adParamInput, Size:=2, Value:=2000) komanda_a.Parameters.Append parametrs_1 komanda_a.Parameters.Append parametrs_2 Dim m_1 As String m_1a = "Talsu" Dim m_2 As Integer m_2a = 2001 'parametrs_1.Value = m_1a Set rakstu_kopa_a = komanda_a.Execute(Parameters:=Array(m_1a, m_2a), _ Options:=adCmdText) 'Jauna savienojuma un kataloga (DB) objektu definēšana Dim savienojums_j As ADODB.Connection Set savienojums_j = New ADODB.Connection Dim katalogs As ADOX.Catalog Set katalogs = New ADOX.Catalog 'Jauna savienojuma objekta ar aktīvo DB izveidošana Set savienojums_j = CurrentProject.Connection Set katalogs.ActiveConnection = savienojums_j 'Jaunas tabulas, kolonas un atslēgas objekta definēšana Dim tabula_j As ADOX.Table Dim kolona_j As ADOX.Column Dim atslega_j As ADOX.Key 'Jaunas tabulas veidošana ar ADOX Set tabula_j = New ADOX.Table tabula_j.Name = "Rezultati" katalogs.Tables.Append tabula_j

21

Page 22: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

'Tabulas Rezultati struktūras definēšana ar ADOX Dim lauks_a As ADODB.Field For Each lauks_a In rakstu_kopa_a.Fields Set kolona_j = New ADOX.Column With kolona_j .Name = lauks_a.Name .Type = lauks_a.Type End With katalogs.Tables("Rezultati").Columns.Append kolona_j Next ‘Primārās atslēgas definēšana 'Set atslega_j = New ADOX.Key 'With atslega_j ' .Name = "PrimaryKey" ' .Type = adKeyPrimary ' .RelatedTable = "Rezultati" ' .Columns.Append "ID_R" 'End With 'katalogs.Tables("Rezultati").Keys.Append atslega_j ‘Jaunas rakstu kopas, kas atbilst tabulai Rezultati izveidošana Dim rakstu_kopa_j As New ADODB.Recordset rakstu_kopa_j.Open "Rezultati", savienojums_j, adOpenKeyset, _ adLockOptimistic 'Vaicājuma rezultātu no rakstu kopas rakstu_kopa_a 'ierakstīšana tabulā Rezultati (rakstu kopā rakstu_kopa_j) Dim lauks_j As ADODB.Field Do Until rakstu_kopa_a.EOF rakstu_kopa_j.AddNew j = 0 For Each lauks_a In rakstu_kopa_a.Fields rakstu_kopa_j.Fields.Item(j) = lauks_a.Value j = j + 1 Next rakstu_kopa_j.Update rakstu_kopa_a.MoveNext Loop

Set savienojums_a = NothingSet savienojums_j = NothingEnd Sub

22

Page 23: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

23

Page 24: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

24

Page 25: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

Nospiežot taustiņu izpildīt tiek aktivizēta sekojoša notikuma procedūra:Private Sub Poga_1_Click() Call Vaicajums_rezultati_tabula( _ Forms("Vaicajumu_logs").Controls("L1").Value, _ Forms("Vaicajumu_logs").Controls("L2").Value, _ Forms("Vaicajumu_logs").Controls("L3").Value & " ", _ Forms("Vaicajumu_logs").Controls("L4").Value)End Sub

'Rakstu kopas izguve no citas MS Access datu bāzes DB_Mazpilstas.mdb,'no tabulām MAZPILSETAS un MAZP_IEDZ_SKAITS un ierakstīšana jaunizveidotā'tabulāPublic Sub Vaicajums_rezultati_tabula( _ par_1 As String, par_2 As String, par_3 As String, _ par_4 As String) Dim savienojums_a As ADODB.Connection Set savienojums_a = New ADODB.Connection Dim komanda_a As ADODB.Command Set komanda_a = New ADODB.Command Dim rakstu_kopa_a As ADODB.Recordset Dim teksta_rinda_sav As String Dim teksta_rinda_SQL As String teksta_rinda_sav = "Provider = " & par_1 & "Data Source =" & par_2 _ & par_3 'teksta_rinda_sav = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ ' "Data Source=G:\Eiduks\DB_tehnologija\ADO\ADO_piem_1\DB_Mazpilsetas.mdb;" savienojums_a.ConnectionString = teksta_rinda_sav savienojums_a.Open teksta_rinda_SQL = par_4 'teksta_rinda_SQL = Forms("Vaicajumu_logs").Controls("L3").Value Set komanda_a.ActiveConnection = savienojums_a komanda_a.CommandText = teksta_rinda_SQL Set rakstu_kopa_a = komanda_a.Execute(Options:=adCmdText) 'Jauna savienojuma un kataloga (DB) objektu definēšana Dim savienojums_j As ADODB.Connection Set savienojums_j = New ADODB.Connection Dim katalogs As ADOX.Catalog Set katalogs = New ADOX.Catalog 'Jauna savienojuma objekta ar aktīvo DB izveidošana Set savienojums_j = CurrentProject.Connection Set katalogs.ActiveConnection = savienojums_j 'Jaunas tabulas, kolonas un atslēgas objekta definēšana Dim tabula_j As ADOX.Table Dim kolona_j As ADOX.Column Dim atslega_j As ADOX.Key 'Ja eksistē tabula Rezultati, tā tiek nodzēsta Dim tabula As ADOX.Table Dim mm As Integer mm = 0 i = 0

25

Page 26: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

For Each tabula In katalogs.Tables If katalogs.Tables.Item(i).Name = "Rezultati" Then mm = 1 End If i = i + 1 Next tabula If mm = 1 Then katalogs.Tables.Delete ("Rezultati") End If 'Jaunas tabulas veidošana ar ADOX Set tabula_j = New ADOX.Table tabula_j.Name = "Rezultati" katalogs.Tables.Append tabula_j 'Tabulas struktūras definēšana ar ADOX Dim lauks_a As ADODB.Field For Each lauks_a In rakstu_kopa_a.Fields Set kolona_j = New ADOX.Column With kolona_j .Name = lauks_a.Name .Type = lauks_a.Type End With katalogs.Tables("Rezultati").Columns.Append kolona_j Next 'Primārās atslēgas definēšana 'Set atslega_j = New ADOX.Key 'With atslega_j ' .Name = "PrimaryKey" ' .Type = adKeyPrimary ' .RelatedTable = "Rezultati" ' .Columns.Append "ID_R" 'End With 'katalogs.Tables("Rezultati").Keys.Append atslega_j 'Jaunas rakstu kopas - tabulas Rezultati rakstu izveidošana Dim rakstu_kopa_j As New ADODB.Recordset rakstu_kopa_j.Open "Rezultati", savienojums_j, adOpenKeyset, _ adLockOptimistic 'Vaicājuma rezultātu no rakstu kopas rakstu_kopa_a 'ierakstīšana tabulā Rezultati (rakstu kopā rakstu_kopa_j) Dim lauks_j As ADODB.Field Do Until rakstu_kopa_a.EOF rakstu_kopa_j.AddNew j = 0 For Each lauks_a In rakstu_kopa_a.Fields rakstu_kopa_j.Fields.Item(j) = lauks_a.Value j = j + 1 Next rakstu_kopa_j.Update rakstu_kopa_a.MoveNext LoopSet savienojums_a = NothingSet savienojums_j = NothingEnd Sub

26

Page 27: Komandas ar parametriem izpilde un datu pārrakstīšana ...€¦  · Web viewsavienojums_e1, adOpenForwardOnly, adLockOptimistic 'Datu pārrakstīšana no vienas datu kopas otr

27


Recommended