DCount vs. SQL SELECT COUNT (*)?
-
06-07-2019 - |
Frage
Ich versuche, eine Anzahl aller Elemente an einen Lieferanten auf der Bestellung auf Basis gesendet zu bekommen, die sie zugeordnet sind. Aber ich kann nicht scheinen, um die Kontrolle zu bekommen eine Reihe von Punkten auf der Bestellung etwa auf der Basis zu zeigen - es hält entweder eine #name werfen? oder #error! Nachricht in dem Textfeld ein, wenn das Formular aktiviert wird.
Erstellen Anweisung für tblPODetail
USE [instkeeper_test]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tblPODetail](
[intPurchaseOrderInstance] [int] IDENTITY(1,1) NOT NULL,
[intPONumber] [int] NOT NULL,
[datDateEntered] [datetime] NOT NULL,
[bolPOOpen] [bit] NOT NULL,
[intRMANumber] [nvarchar](255) NULL,
[strSupplierCode] [nvarchar](50) NOT NULL,
[strSupplierLastAddress] [nvarchar](50) NULL,
[strSupplierLastCity] [nvarchar](50) NULL,
[strSupplierLastState] [nvarchar](50) NULL,
[strSupplierLastPostalCode] [nvarchar](50) NULL,
[strSupplierLastCountry] [nvarchar](50) NULL,
[strSupplierLastPhone] [nvarchar](50) NULL,
[strSupplierLastFax] [nvarchar](50) NULL,
[datDateSent] [datetime] NULL,
[datDateReceived] [datetime] NULL,
[bolAdvGageTrakNoTouch] [bit] NOT NULL,
[bolAdvHardCopies] [bit] NOT NULL,
[bolFreightShip] [bit] NOT NULL,
[bolReturnableUsed] [bit] NOT NULL,
[bolInHouse] [bit] NOT NULL,
[strUPSTrackNumOut] [nvarchar](255) NULL,
[strFedExTrackNumOut] [nvarchar](255) NULL,
[strFreightTrackNumOut] [nvarchar](255) NULL,
[strUPSTrackNumIn] [nvarchar](255) NULL,
[strFedExTrackNumIn] [nvarchar](255) NULL,
[strFreightTrackNumIn] [nvarchar](255) NULL,
[SSMA_TimeStamp] [timestamp] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[tblPODetail] WITH CHECK ADD CONSTRAINT [SSMA_CC$tblPODetail$strSupplierCode$disallow_zero_length] CHECK ((len([strSupplierCode])>(0)))
GO
ALTER TABLE [dbo].[tblPODetail] CHECK CONSTRAINT [SSMA_CC$tblPODetail$strSupplierCode$disallow_zero_length]
GO
ALTER TABLE [dbo].[tblPODetail] ADD CONSTRAINT [DF__tblPODeta__intPO__6C190EBB] DEFAULT ((0)) FOR [intPONumber]
GO
ALTER TABLE [dbo].[tblPODetail] ADD CONSTRAINT [DF__tblPODeta__datDa__6D0D32F4] DEFAULT (getdate()) FOR [datDateEntered]
GO
ALTER TABLE [dbo].[tblPODetail] ADD CONSTRAINT [DF__tblPODeta__bolPO__6E01572D] DEFAULT ((1)) FOR [bolPOOpen]
GO
ALTER TABLE [dbo].[tblPODetail] ADD CONSTRAINT [DF__tblPODeta__bolAd__6EF57B66] DEFAULT ((1)) FOR [bolAdvGageTrakNoTouch]
GO
ALTER TABLE [dbo].[tblPODetail] ADD CONSTRAINT [DF__tblPODeta__bolAd__6FE99F9F] DEFAULT ((1)) FOR [bolAdvHardCopies]
GO
ALTER TABLE [dbo].[tblPODetail] ADD CONSTRAINT [DF__tblPODeta__bolFr__70DDC3D8] DEFAULT ((0)) FOR [bolFreightShip]
GO
ALTER TABLE [dbo].[tblPODetail] ADD CONSTRAINT [DF__tblPODeta__bolRe__71D1E811] DEFAULT ((0)) FOR [bolReturnableUsed]
GO
ALTER TABLE [dbo].[tblPODetail] ADD CONSTRAINT [DF__tblPODeta__bolIn__72C60C4A] DEFAULT ((0)) FOR [bolInHouse]
GO
Erstellen Anweisung für tblPOGaugeDetail
USE [instkeeper_test]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tblPOGaugeDetail](
[intItemPOID] [int] IDENTITY(1,1) NOT NULL,
[intGagePOID] [int] NOT NULL,
[strGageDetailID] [nvarchar](50) NULL,
[datGageSent] [datetime] NULL,
[datGageReceived] [datetime] NULL,
[bolGageCalibrate] [bit] NOT NULL,
[bolGageRepair] [bit] NOT NULL,
[bolGageEvaluate] [bit] NOT NULL,
[bolGageAccredited] [bit] NOT NULL,
[bolGageReturned] [bit] NOT NULL,
[bolGageException] [bit] NOT NULL,
[bolGageExceptResolved] [bit] NOT NULL,
[bolGageLeavePriceBlank] [bit] NOT NULL,
[intGageCost] [real] NULL,
[intTurnaroundDaysOut] [int] NULL,
[SSMA_TimeStamp] [timestamp] NOT NULL,
CONSTRAINT [tblPOGaugeDetail$PrimaryKey] PRIMARY KEY CLUSTERED
(
[intItemPOID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[tblPOGaugeDetail] WITH CHECK ADD CONSTRAINT [tblPOGaugeDetail$tblPODetailtblPOGaugeDetail] FOREIGN KEY([intGagePOID])
REFERENCES [dbo].[tblPODetail] ([intPurchaseOrderInstance])
ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[tblPOGaugeDetail] CHECK CONSTRAINT [tblPOGaugeDetail$tblPODetailtblPOGaugeDetail]
GO
ALTER TABLE [dbo].[tblPOGaugeDetail] ADD DEFAULT ((0)) FOR [intGagePOID]
GO
ALTER TABLE [dbo].[tblPOGaugeDetail] ADD DEFAULT ((1)) FOR [bolGageCalibrate]
GO
ALTER TABLE [dbo].[tblPOGaugeDetail] ADD DEFAULT ((0)) FOR [bolGageRepair]
GO
ALTER TABLE [dbo].[tblPOGaugeDetail] ADD DEFAULT ((0)) FOR [bolGageEvaluate]
GO
ALTER TABLE [dbo].[tblPOGaugeDetail] ADD DEFAULT ((0)) FOR [bolGageAccredited]
GO
ALTER TABLE [dbo].[tblPOGaugeDetail] ADD DEFAULT ((0)) FOR [bolGageReturned]
GO
ALTER TABLE [dbo].[tblPOGaugeDetail] ADD DEFAULT ((0)) FOR [bolGageException]
GO
ALTER TABLE [dbo].[tblPOGaugeDetail] ADD DEFAULT ((0)) FOR [bolGageExceptResolved]
GO
ALTER TABLE [dbo].[tblPOGaugeDetail] ADD DEFAULT ((0)) FOR [bolGageLeavePriceBlank]
GO
ALTER TABLE [dbo].[tblPOGaugeDetail] ADD DEFAULT ((0)) FOR [intGageCost]
GO
ALTER TABLE [dbo].[tblPOGaugeDetail] ADD DEFAULT ((0)) FOR [intTurnaroundDaysOut]
GO
Abfrage-Anweisung zur Bestellung Details, die ich die Zählungen in
angezeigt werden sollenSELECT dbo_tblPODetail.intPurchaseOrderInstance, dbo_tblPODetail.strSupplierCode, dbo_tblPODetail.bolPOOpen, dbo_tblPODetail.intPONumber, dbo_tblPODetail.datDateSent
FROM dbo_tblPODetail
WHERE (((dbo_tblPODetail.bolPOOpen)=True))
ORDER BY dbo_tblPODetail.datDateSent;
Ich habe ein bisschen frustriert, als ich ein wenig auf beiden DCount () und SELECT COUNT (*) gelesen haben, aber kann nicht scheinen, zu arbeiten -either- von ihnen zu bekommen. Jede Hilfe wäre sehr dankbar! Vielen Dank im Voraus!
- Edited 2009.06.18 @ 1542 Stunden -
Dies ist ein Beispiel für die SELECT COUNT Ich habe versucht, in den Code zu verwenden, wenn die Unterformular Ein Strom Ereignis ausgelöst:
SELECT COUNT(*) AS ItemsSent
FROM [dbo_tblPOGaugeDetail]
WHERE [dbo_tblPOGageDetail]![intGagePOID] = [dbo_tblPODetail]![intPurchaseOrderInstance]
Dies ist ein Beispiel für die = DBANZAHL Aussage in Bezug auf die Steuerung im Unterformular beigefügt.
=DCOUNT("*", "[dbo_tblPOGaugeDetail]", "[intGagePOID] = [Forms]![frmSupplierInfoMain]![subfrmOpenPOBySupplierID]![intPurchaseOrderInstance]")
Keine von diesen gearbeitet -. Leider
Lösung
Ist Ihre Abfrage Arbeit ohne die count (*)?
Verwenden Sie einen aktuellen Feldnamen für das erste Argument von DCount Holen Sie sich das Steuer Namen aus dem in dem String.
For DCOUNT("[intItemPOID],"[dbo_tblPOGaugeDetail]","[intGagePOID]=" & Forms]![frmSupplierInfoMain]![subfrmOpenPOBySupplierID]![intPurchaseOrderInstance])