[ gagacar @ 08.10.2010. 14:45 ] @
Pozdrav,

imam access bazu u kojoj imam tabelu Roba (sa preko 30.000 artikla), sa poljima: sifra, naziv, opis, cena itd. Dobio sam novi cenovnik u excelu i treba da importujem nove cene na osnovu sifre, a da ostala polja: naziv, opis ied. ostanu nepromenjena.

Pretpostavljam da treba vba kod (gledao sam na nekim primerima ovde, ali to nije to), pa ako moze neko da mi pomogne oko koda?
[ Srbin do jaja @ 08.10.2010. 16:41 ] @
to bi mislim bilo moguce sa update query iz vba koda. ili da uvezes cenovnik u posebnu tabelu pa da radis update query glavne tabele sa cenama i artiklima (samo pod uslovom da se PK robe u temp tabeli i glavnoj tabeli isti, a PK bi bila sifra artikla koju si vec naveo da postoji).
poz
[ SLOJ.1973 @ 08.10.2010. 18:25 ] @
Ako ovakav zahtev
Citat:
gagacar: Pozdrav,

Dobio sam novi cenovnik u excelu i treba da importujem nove cene na osnovu sifre, a da ostala polja: naziv, opis ied. ostanu nepromenjena.

imaš samo sada (ili vrlo retko ) tj.samo si ti taj koji treba da menja cene onda ti je Srbin do jaja dao odgovor.Naime prvo linkuješ tu excel tabelu u bazu.Zatim odradiš sledeći upit:
Code:
INSERT INTO tblRoba( Sifra, Naziv, JM,Cena )
SELECT linkExceltabela.Sifra,linkExceltabela.Cena
FROM linkExceltabela; 


To je najprostiji update query.Druga je stvar ako često treba da menjaš cene.Onda sve ovo odradiš gore i na formi dodaš komandno dugme sa sledećim kodom:
Code:
Private Sub cmdazuriranjeart_Click()
On Error GoTo Err_cmdazuriranjeart_Click
DoCmd.SetWarnings False
    Dim stDocName As String
    
 Dim strMsg As String
  stDocName = "qrydodavanjeart"
    strMsg = "AŽURIRANJE ARTIKALA. "
    strMsg = strMsg & " DA LI ŽELITE DA AŽURIRATE ARTIKLE? "
       If MsgBox(strMsg, vbExclamation + vbYesNo, "AŽURIRATI!!") = vbYes Then
   
    
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    MsgBox "GOTOVO", vbOKOnly, "AŽURIRANJE ZAVRŠENO"

  Else
  MsgBox " RADNJA OTKAZANA OD STRANE KORISNIKA,PODACI NEĆE BITI AŽURIRANI!", vbCritical, "PREKID OPERACIJE"
  End If

Exit_cmdazuriranjeart_Click:
    Exit Sub

Err_cmdazuriranjeart_Click:
    MsgBox Err.Description
    Resume Exit_cmdazuriranjeart_Click
    
End Sub
I to je to.
E,sad postoji i još jedan momenat:šta ako je dodat novi artikal.Onda odradiš append query
Code:
INSERT INTO tblRoba ( Sifra, Naziv, JM, Cena )
SELECT linkExceltabela.Sifra, linkExceltabela.Naziv, linkExceltabela.JM, linkExceltabela.cena
FROM linkExceltabela;
Nadam se da sam ti pomogao.
[ gagacar @ 11.10.2010. 11:16 ] @
Da, ali ja već imam u bazi sve artikle, tako da treba samo da ažuriram cene. Pretpostavljam da tu ne ide INSERT već UPDATE?

Da pojasnim, roba sadrži cenovnike više dobavljača, tako da kad određeni dobavljač promeni svoje cene, ne menjaju se sve cene u tabeli, već samo određenog dobavljača na osnovu šifre proizvoda (svi dobavljači imaju potpuno različite šifre za istu vrstu proizvoda, tako da ne može tu doći do greške).
[ Zoran.Eremija @ 11.10.2010. 11:37 ] @
Nakacite primer Excel fajla i Access baze da bi Vam se lakse pomoglo...
[ gagacar @ 12.10.2010. 14:50 ] @
Uspeo sam da sredim.... Hvala!