Zapis v access tabelo
Zapis v access tabelo
Kako bi v VB zapisal, da mi neki podatek zapiše v tabelo, brez uporab subforum?
Na formi imam več polj v obliki razpredelnice, ki jih morem napolniti v različne tabele.
LP Jože
Na formi imam več polj v obliki razpredelnice, ki jih morem napolniti v različne tabele.
LP Jože
Pozdravljeni,
Moram reči, da ne razumem natančno, kaj želite. Spodaj imate primer, ki iz podatkovne baze Northwind.mdb (dobite jo ob instalaciji MS Pisarne) izpiše imena vseh kupcev. Napisal sem tako, da je koda čimbolj samoopisljiva. S to kodo vidite, kako brati iz baze. Ko se boste to naučili pa vam pokažem še pisanje, če je to seveda tisto kar vas muči!
Da bo koda delovala morate v projekru obvezno dodati referenco na 'Microsoft DAO (čim večje številka) Object Library'.
Moram reči, da ne razumem natančno, kaj želite. Spodaj imate primer, ki iz podatkovne baze Northwind.mdb (dobite jo ob instalaciji MS Pisarne) izpiše imena vseh kupcev. Napisal sem tako, da je koda čimbolj samoopisljiva. S to kodo vidite, kako brati iz baze. Ko se boste to naučili pa vam pokažem še pisanje, če je to seveda tisto kar vas muči!
Da bo koda delovala morate v projekru obvezno dodati referenco na 'Microsoft DAO (čim večje številka) Object Library'.
Koda: Izberi vse
Sub IzpisiKupce()
Dim Baza As Database
Dim Kupci As Recordset
' Odprem bazo
Set Baza = DBEngine.Workspaces(0).OpenDatabase _
("c:\Program Files\...\Samples\Northwind.mdb")
If Err.Number <> 0 Then
MsgBox Err.Description, vbExclamation
Exit Sub
End If
' Odprem tabelo
Set Kupci = Baza.OpenRecordset("Customers", dbOpenTable)
If Err.Number <> 0 Then
MsgBox Err.Description, vbExclamation
Err.Clear
End If
' izpišem imena podjetij
While (Not Kupci.EOF())
Debug.Print Kupci.Fields("CompanyName")
Kupci.MoveNext
Wend
' sprostim kazalce
Set Kupci = Nothing
Set Baza = Nothing
End Sub
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Pozdravljen Matjaž
Pri omenjeni temi, bi še jaz pristavil piskerček.
Zanima me še malo naprej.
Torej:
1. Kako bi v Excelovi formi (UserForm1), v (TextBox1) dobil podatek ("Hanna Moos") iz omenjene baze podatkov "Northwind.mdb", v tabeli "Customers", stolpca "ContactName". Podatek bi iskal po "CustomerID" npr. vrednost "BLAUS". Iskani podatek je "Hanna Moos".
2. Ta popdatek v bazi bi rad zamenjal s podatkom "Yane Moss"
Za odgovor se lepo zahvaljujem.
Pri omenjeni temi, bi še jaz pristavil piskerček.
Zanima me še malo naprej.
Torej:
1. Kako bi v Excelovi formi (UserForm1), v (TextBox1) dobil podatek ("Hanna Moos") iz omenjene baze podatkov "Northwind.mdb", v tabeli "Customers", stolpca "ContactName". Podatek bi iskal po "CustomerID" npr. vrednost "BLAUS". Iskani podatek je "Hanna Moos".
2. Ta popdatek v bazi bi rad zamenjal s podatkom "Yane Moss"
Za odgovor se lepo zahvaljujem.
Pozdravljeni,
Nisem vam pisal v obliki obazca, to boste že sami . Spodaj pa je funkcija, ki izbere iskanega kupca in mu zamenja ime. (Po vaših navodilih!).
Kode je veliko, ker izvajam vse teste (v splošnem to ni potrebno...). V glavnem napisano je tako, pravilno, šolsko.
Nisem vam pisal v obliki obazca, to boste že sami . Spodaj pa je funkcija, ki izbere iskanega kupca in mu zamenja ime. (Po vaših navodilih!).
Kode je veliko, ker izvajam vse teste (v splošnem to ni potrebno...). V glavnem napisano je tako, pravilno, šolsko.
Koda: Izberi vse
' www.matjazev.net
' 06.04.2006
Sub Primer()
Dim Baza As Database
Dim Kupci As Recordset
' Odprem bazo
Set Baza = DBEngine.Workspaces(0).OpenDatabase _
("C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb")
If Err.Number <> 0 Then
MsgBox Err.Description, vbExclamation
Exit Sub
End If
' Najdem zapis
Set Kupci = Baza.OpenRecordset("SELECT ContactName FROM Customers WHERE CustomerID = 'BLAUS';")
If Err.Number <> 0 Then
MsgBox Err.Description, vbExclamation
Err.Clear
End If
' Izpišem prebran zapis
Debug.Print Kupci.Fields("ContactName")
' popravim zapis
Kupci.Edit
Kupci.Fields("ContactName") = "Yane Moss"
Kupci.Update
' sprostim kazalce
Set Kupci = Nothing
Set Baza = Nothing
End Sub
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Ponovno pozdrav
Do tu mi je približno jasno, za nadaljevanje pa potrebujem pomoč.
Na omenjeni bazi: »C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb«, bi vzel tabelo »Order Details«
1. V tabelo bi želel vstaviti novo vrstico:
Order ID: 11077 npr. podatek je v UF_1.TB_ Order ID.Value
Product: Chai itd...
Until Price: 5 itd...
Quantity: 2 itd...
Discount: 0,5 itd...
2. Kako bi to(celotno) vrstico zbrisal?
Lep pozdrav
Do tu mi je približno jasno, za nadaljevanje pa potrebujem pomoč.
Na omenjeni bazi: »C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb«, bi vzel tabelo »Order Details«
1. V tabelo bi želel vstaviti novo vrstico:
Order ID: 11077 npr. podatek je v UF_1.TB_ Order ID.Value
Product: Chai itd...
Until Price: 5 itd...
Quantity: 2 itd...
Discount: 0,5 itd...
2. Kako bi to(celotno) vrstico zbrisal?
Lep pozdrav
Pozdravljeni,
Vse kar počnete z DAO (to so objekti, o katerih je tu govora), počnete preko SQL standarda, zato se pač morate najprej naučiti SQL-a. Ko boste SQL znali, boste vedeli, da se zapisi dodajajo z ukazom:
brišejo pa z ukazom
Glede na zapisano je potem koda za dodajanje in brisanje praktično enaka, razlika je le v SQL stavku:
Vse kar počnete z DAO (to so objekti, o katerih je tu govora), počnete preko SQL standarda, zato se pač morate najprej naučiti SQL-a. Ko boste SQL znali, boste vedeli, da se zapisi dodajajo z ukazom:
Koda: Izberi vse
INSERT INTO <tabala> (<seznam kolon>) VALUES (<vrednosti kolon>)
Koda: Izberi vse
DELETE FROM <tabala> WHERE <pogoj, katere vrstice naj se izbrišejo>
Koda: Izberi vse
' www.matjazev.net
' 10.04.2006
Sub DodajZapis_primer()
Dim Baza As Database
' Odprem bazo
Set Baza = DBEngine.Workspaces(0).OpenDatabase _
("C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb")
' pripravim SKL stavek za vnos novega zapisa
Dim SQLStavek
SQLStavek = "INSERT INTO Customers (CustomerID, CompanyName,ContactName) VALUES ('MATJ', 'www.matjazev.net', 'Matjaž Prtenjak')"
' izvedem SQL stavek
Baza.Execute SQLStavek
If Err.Number <> 0 Then
MsgBox Err.Description, vbExclamation
Err.Clear
End If
' sprostim kazalce
Set Baza = Nothing
End Sub
' www.matjazev.net
' 10.04.2006
Sub BrisiZapis_primer()
Dim Baza As Database
' Odprem bazo
Set Baza = DBEngine.Workspaces(0).OpenDatabase _
("C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb")
' pripravim SKL stavek za brisanja zapisa
Dim SQLStavek
SQLStavek = "DELETE FROM Customers WHERE CustomerID='MATJ'"
' izvedem SQL stavek
Baza.Execute SQLStavek
If Err.Number <> 0 Then
MsgBox Err.Description, vbExclamation
Err.Clear
End If
' sprostim kazalce
Set Baza = Nothing
End Sub
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Lep pozdrav
Se trudim, pa mi ne gre najbolje.
Imam programček v Excelu bazo, pa v Accessu.
Želel bi izvedeti max vrednost v nekem stolpcu.
Znal bi tako, da vse vrednosti prepišem v Excelov stolpec in potegnem max. vrednost - samo se mi ne zdi prav dobra rešitev.
Prosil bi za krajšo rešitev na bazi: Northwind.mdb, tabeli Products in stolpcu UntilPrice.
Hvala za odgovor
Se trudim, pa mi ne gre najbolje.
Imam programček v Excelu bazo, pa v Accessu.
Želel bi izvedeti max vrednost v nekem stolpcu.
Znal bi tako, da vse vrednosti prepišem v Excelov stolpec in potegnem max. vrednost - samo se mi ne zdi prav dobra rešitev.
Prosil bi za krajšo rešitev na bazi: Northwind.mdb, tabeli Products in stolpcu UntilPrice.
Hvala za odgovor
Pozdravljeni,
kot sem vam že svetoval, se morate najprej naučiti SQL-a. Vaše vprašanje namreč nima nobene neposredne zveze z Excelom, ne z Accessom in ne z VBA-jem. Gre za povsem osnoven SQL ukaz:
kot sem vam že svetoval, se morate najprej naučiti SQL-a. Vaše vprašanje namreč nima nobene neposredne zveze z Excelom, ne z Accessom in ne z VBA-jem. Gre za povsem osnoven SQL ukaz:
Koda: Izberi vse
SELECT max(UnitPrice) FROM Products;
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Žal mi ne gre.
Napako mi vrže pri msg-ju.
Koda: Izberi vse
Sub Max_vrednost()
'
Dim Baza As Database
Dim Max_vrednost As Recordset
' Odprem bazo
Set Baza = DBEngine.Workspaces(0).OpenDatabase _
("C:\Northwind.mdb")
' Najdem zapis
Set Max_vrednost = Baza.OpenRecordset("SELECT max(UnitPrice) FROM Products;")
' Izpišem prebran zapis
MsgBox Max_vrednost.Fields("UnitPrice")
' sprostim kazalce
Set Max_vrednost = Nothing
Set Baza = Nothing
End Sub